Wanneer een KeyboardEvent
vuurt, kunt u testen welke toets is ingedrukt, omdat die gebeurtenis informatie bevat waartegen u logica kunt schrijven.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Als u bijvoorbeeld op "a" drukt, krijgt u 65
. Blijkbaar is het het beste om logica te schrijven waartegen, aangezien keyCode en charCode gecompliceerd zijn:
De eigenschap event.which normaliseert event.keyCode en event.charCode. Het wordt aanbevolen om de gebeurtenis te bekijken die voor invoer van de toetsenbordtoets is.
En:
In een toetsdrukgebeurtenis wordt de Unicode-waarde van de ingedrukte toets opgeslagen in de eigenschap keyCode of charCode, nooit in beide. Als de ingedrukte toets een teken genereert (bijv. 'A'), wordt charCode ingesteld op de code van dat teken, rekening houdend met het hoofdlettergebruik. (dwz charCode houdt er rekening mee of de shift-toets ingedrukt wordt gehouden). Anders wordt de code van de ingedrukte toets opgeslagen in keyCode.
Tester Tool
Zie de Pen-event.keyCode-tester door Chris Coyier (@chriscoyier) op CodePen.
Keycode-waarden
Hier is een tabel met de waarden van event.which
.
|
|
|
Zell Liew merkte op dat 3 van deze sleutelcodes in Firefox anders waren dan in de rest van de browsers
;
is 59 in Firefox maar 186 in andere browsers.=
is 61 in Firefox maar 187 in andere browsers.-
is 173 in Firefox maar 189 in andere browsers.
Belangrijke opmerking: deze keycode-waarden zijn alleen geldig tijdens in keydown
en keyup
events. Op Mac keypress
geven gebeurtenissen je een heel andere set codes.
Bijvoorbeeld:
Sleutel | event.which in keydown | event.which bij toetsaanslag |
een | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |