2010-06-16 6 views
1

Ce code javascript renvoie toujours zéro pour "Shift + /" combinaison de touches sur Firefox 3.6.3 sur OSX 10.5.8 Mais il renvoie la valeur attendue 191 Chrome sur Mac OS X/MacShift +/combinaison de touches ne pas être détecté par javascript dans Firefox sur Mac OSX

GetKeyCode = function(e) { 
     var code = 0; 
     if (!e) { 
      e = window.event 
     } 
     if (e.keyCode) { 
      code = e.keyCode; 
     } else if (e.which) { 
      code = e.which; 
     } 
     return code; 
    }; 

GetKeyCode est d'obtenir l'événement keydown de jQuery.

jQuery(document).keydown(function(e) { ...... }); 

Y at-il bug, ou suis-je manque quelque chose très simple ici? S'il vous plaît aider

Merci d'avance. -Parimal Das

+0

Comment est 'GetKeyCode' attaché? Pour quel événement, sur quel élément? Jetez un oeil à http://unixpapa.com/js/key.html pour plus d'informations sur les événements de clavier. –

+0

C'est un événement de clavier. J'ai mis à jour le post aussi. Merci. –

+0

Pourquoi avez-vous créé ce wiki communautaire? –

Répondre

0

Si cela provient de jQuery, vous ne devriez utiliser que e.which. En fait, la recherche de e.keyCode peut être à l'origine du problème, car elle n'est pas remplie si la touche Maj est enfoncée. Voir the Mozilla documentation.

+0

Je pense que vous confondez 'keyCode' avec' charCode': "' charCode' n'est jamais défini dans les événements keydown et keyup, dans ce cas, 'keyCode' est défini à la place." Regardez également [event.keyCode] (https://developer.mozilla.org/en/DOM/event.keyCode): "' keyCode' est toujours défini dans les événements keydown et keyup Dans ce cas, 'charCode' est jamais réglé. " –

+0

Mais vous avez raison à propos de jQuery normalisant 'event.which':" Alors que les navigateurs utilisent des propriétés différentes pour stocker ces informations, jQuery normalise la propriété '.which' afin que nous puissions l'utiliser de manière fiable pour récupérer le code clé. –

+0

En fait, j'éviterais le clavier/clavier, sauf dans certains cas de bords, par exemple des touches de modification, une clé sur le clavier, y compris des codes pour des touches spéciales telles que des flèches. Tenez-vous à appuyer sur si vous le pouvez. – Neil

Questions connexes