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
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody