Je crée une zone de texte pour une combinaison de touches de raccourci définie par l'utilisateur, où elle imprime simplement les modificateurs et la clé.event.keyCode est différent dans keydown/keyup et keypress
Je ne me soucie pas vraiment de son réglage lorsque vous appuyez sur ou relâchez les touches, j'ai donc commencé avec l'événement keypress
. Tout d'abord, les modificateurs semblaient affecter le code de touche (comme les majuscules de décalage qui implique que le code de touche n'est pas un code clé mais un code de caractère tapé) mais aussi preventDefault
ne semble pas fonctionner correctement, donc je suis passé à keydown
. Cela a introduit une divergence dans event.keyCode. Par exemple, la virgule ,
a produit un ASICI délicieux keyCode=44
mais maintenant c'est un keyCode=188
dégoûtant.
Une page de test: http://www.javascripter.net/faq/keyboardeventproperties.htm
Je voudrais vraiment avoir des codes clés standardisés ici ou aux quelques constantes les moins. Ma demande est pour une solution de contournement. Soit:
Quelle est la meilleure façon d'obtenir le caractère imprimable (en ignorant les modificateurs, si
,
/<
sont considérés comme la même clé et donner,
) pour le bizarre, mais plus cohérentekeydown
/keyup
?Peut
keypress
être plus commekeydown
/keyup
pour donner réellement la clé qui a été pressé et est-il un mécanisme commepreventDefault
pour arrêter les raccourcis intercepter navigateur?
connexes: http://www.javascripter.net/faq/keycodes.htm
Est-ce que '' charCode' dans le cas keypress' Aidez-moi? – Barmar
On ne sait pas ce que vous voulez. Voulez-vous un code différent pour 'a' et' A'? – Barmar
Cette question est-elle utile: http://stackoverflow.com/questions/3396754/onkeypress-vs-onkeyup-and-onkeydown – Barmar