Gérer le clic droit en javascript.

Gérer le clic droit en javascript. - HTML/CSS - Programmation

Marsh Posté le 20-08-2005 à 15:22:43    

Je sais qu'on peut gérer le clic droit en javascript, mais je n'arrive pas à le gérer sur une image particulière.
J'ai beau chercher sur Google, je n'arrive qu'à trouver des solutions pour Copyrighter la page, solution dont on connait tous l'efficacité.
 
Bref, y'a-t-il un moyen, concrètement, d'avoir une image, que le clic gauche renvoi sur un lien et le clic droit sur la même image sur un autre lien ?
 
Merci d'avance... :jap:
 
En attendant, je continue mon exploration Gougoule.

Reply

Marsh Posté le 20-08-2005 à 15:22:43   

Reply

Marsh Posté le 20-08-2005 à 15:25:03    

Ha bah j'ai trouvé, en fait, j'avais déjà trouvé mais ça marchait pas et là ça fonctionne.
 
Pour ceux que ça intéresserait : oncontextmenu.
 

Reply

Marsh Posté le 20-08-2005 à 15:50:35    

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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed