Comment puis-je capturer L'événement de clic droit dans JavaScript? [dupliquer]

cette question a déjà une réponse ici:

  • est-ce que le clic droit est un événement Javascript? 13 Réponses

je veux bloquer les menus de contexte standard, et gérer l'événement de clic droit manuellement.

Comment faire?

177
demandé sur Giffyguy 2010-11-21 01:51:55

2 réponses

utilisez l'événement oncontextmenu .

voici un exemple:

<div oncontextmenu="javascript:alert('success!');return false;">
    Lorem Ipsum
</div>

et en utilisant des écouteurs d'événements:

el.addEventListener('contextmenu', function(ev) {
    ev.preventDefault();
    alert('success!');
    return false;
}, false);

N'oubliez pas de retourner false, sinon le menu contextuel standard apparaîtra.

si vous allez utiliser une fonction que vous avez écrite plutôt que javascript:alert("Success!") , rappelez-vous de retourner false à la fois dans la fonction et l'attribut oncontextmenu .

256
répondu Chase 2014-04-22 08:21:03

je pense que vous cherchez quelque chose comme ça:

   function rightclick() {
    var rightclick;
    var e = window.event;
    if (e.which) rightclick = (e.which == 3);
    else if (e.button) rightclick = (e.button == 2);
    alert(rightclick); // true or false, you can trap right click here by if comparison
}

( http://www.quirksmode.org/js/events_properties.html )

et ensuite utiliser onmousedown même avec la fonction rightclick () (si vous voulez l'utiliser globalement sur une page entière, vous pouvez faire ceci <body onmousedown=rightclick(); >

23
répondu cyber-guard 2010-11-20 23:04:17