2010-06-11 30 views
6

J'ai récemment découvert que les différents navigateurs gèrent différemment l'événement onclick lorsque les contrôle ou touches Maj sont enfoncées. Ils divergent de la même manière sur le comportement pour les liens suivants en cliquant sur le bouton du milieu de la souris.Ctrl ou Shift effets sur l'événement `onclick` d'une balise d'ancrage dans chaque navigateur

Avec le lien suivant:

<a href="http://www.example.com/" onclick="alert('onclick');">go to example.com</a> 

table de support du navigateur Onclick

Mouse Keyboard  Chrome Firefox Safari Opera  IE5.5  IE6  IE7  IE8  IE9  

Left  None   yes  yes  yes  yes  yes  yes  yes  yes  yes 
Left  Ctrl   yes  yes  yes  yes  ?   yes  no  no  ? 
Left  Shift   yes  yes  yes  yes  ?   yes  yes  yes  ? 
Middle None   yes  no  yes  no  ?   N/A  no  no  ? 

Quelqu'un peut-il s'il vous plaît remplir les points d'interrogation pour moi? Aussi; Je me demande si le comportement diffère pour chaque version de Chrome, Firefox, Safari et Opera.

Trouver un motif logique dans ce comportement serait encore plus agréable, mais je ne pense pas qu'il y en ait un, malheureusement. :)

Répondre

2

Voir my answer pour une question connexe. Ceci est dû au "comportement attendu" lorsqu'un utilisateur utilise des boutons de clavier à modification par clic - l'utilisateur attend Ctrl + Cliquez sur un lien pour ouvrir ce lien dans un nouvel onglet ou une nouvelle fenêtre. Les chaps chez Microsoft ont décidé que la seule raison pour laquelle un utilisateur Ctrl + cliquait parce qu'ils s'attendaient à ce comportement, ainsi, ces clics ne déclenchent pas l'événement onclick dans Internet Explorer.

+0

BTW: Je n'ai pas l'intention de changer le comportement des navigateurs Web. J'ai juste besoin de mesurer les clics commerciaux (via une bibliothèque JavaScript). J'ai eu ce travail pour IE7 et IE8 via un gestionnaire d'événements. Mais je suis curieux de connaître le comportement de IE5.5 et IE9. Aussi; Depuis la navigation par onglets devient de plus en plus populaire (également via des clics à droite). Donc, un jour, nous devrons passer à une méthode de redirection. – Erik