Lorsqu'un se KeyboardEvent
déclenche, vous pouvez tester quelle touche a été enfoncée car cet événement contient des informations sur lesquelles vous pouvez écrire une logique.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Par exemple, en appuyant sur «a», vous obtiendrez 65
. Apparemment, il est préférable d'écrire une logique par rapport à laquelle, car keyCode et charCode sont compliqués:
La propriété event.which normalise event.keyCode et event.charCode. Il est recommandé de regarder l'événement pour la saisie des touches du clavier.
Et:
Dans un événement keypress, la valeur Unicode de la touche enfoncée est stockée dans la propriété keyCode ou charCode, jamais les deux. Si la touche enfoncée génère un caractère (par exemple 'a'), charCode est mis au code de ce caractère, en respectant la casse des lettres. (c'est-à-dire que charCode prend en compte si la touche Maj est maintenue enfoncée). Sinon, le code de la touche enfoncée est stocké dans keyCode.
Outil de testeur
Voir le testeur de Pen event.keyCode par Chris Coyier (@chriscoyier) sur CodePen.
Valeurs du code clé
Voici un tableau qui contient les valeurs de event.which
.
|
|
|
Zell Liew a remarqué que 3 de ces codes clés étaient différents dans Firefox du reste des navigateurs
;
est de 59 dans Firefox mais de 186 dans d'autres navigateurs.=
est de 61 dans Firefox mais de 187 dans les autres navigateurs.-
est 173 dans Firefox mais 189 dans les autres navigateurs.
Remarque importante: ces valeurs de code clé ne sont valides que pendant les événements in keydown
et keyup
. Sur Mac, les keypress
événements vous donnent un ensemble de codes complètement différent.
Par exemple:
Clé | event.which en keydown | event.which en appuyant sur une touche |
une | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |