Ou alors tu gères l'évènement "click", et sur l'objet évènement (e pour les navigateurs w3c ou window.event pour MSIE) tu testes la valeur de "e.button" et "e.which"
e.which est une propriété de Netscape 4, le bouton est le right clic si e.which == 3
e.button est la propriété W3C, right clic correspond à e.button == 2
Donc pour savoir si tu as un right clic:
function clicHandler(e) {
if(!e) var e = window.event;
var rightclick;
if(e.which) rightclick = (e.which == 3);
else if(e.button) rightclick = (e.button == 2);
// si rightclick == True alors click droit
} |
normalement on a 2 autres valeurs (middle & left click), mais les implémentations varient:
Le W3C définit les valeurs 0 pour leftclick, 1 pour middleclick et 2 pour rightclick, Microsoft définit 1, 2 et 4.
La norme W3C est ici complètement stupide et sans intérêt (*), donc la pluspart des navigateurs suivent la norme de MS, Mozilla étant le seul ne le faisant pas.
(*): Pourquoi la version W3C est stupide:
- 0 devrait correspondre à "aucun click"
- utiliser 1/2/4 permet de mettre en place des bitmasks et de détecter si on a plusieurs clics en simultané
- 1/2/4 est extensible à l'infini si on ajoute des boutons, toujours via bitmask (1 2 4 8 16 32 64 128 256 512 ...)
À noter que la détection fonctionne de manière plus sûre en utilisant les évènements mouseup et mousedown que l'évènement click.
Comme d'hab, toutes les infos viennent de quirksmode ![[:spamafote] [:spamafote]](https://forum-images.hardware.fr/images/perso/spamafote.gif)
---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?