Când se KeyboardEvent
declanșează, puteți testa ce tastă a fost apăsată, deoarece acel eveniment conține informații pe care puteți scrie logică.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
De exemplu, apăsând pe „a”, veți obține 65
. Se pare că este mai bine să scrieți logică împotriva căreia, deoarece keyCode și charCode sunt complicate:
Proprietatea event.which normalizează event.keyCode și event.charCode. Este recomandat să urmăriți evenimentul.care pentru introducerea tastelor tastaturii.
Și:
Într-un eveniment de apăsare a tastei, valoarea Unicode a tastei apăsate este stocată în proprietatea keyCode sau charCode, niciodată în ambele. Dacă tasta apăsată generează un caracter (de exemplu, 'a'), charCode este setat la codul acelui caracter, respectând litere mari. (adică charCode ia în considerare dacă este apăsată tasta Shift). În caz contrar, codul tastei apăsate este stocat în keyCode.
Instrument de testare
Vezi Pen event.keyCode tester de Chris Coyier (@chriscoyier) pe CodePen.
Valorile codului cheie
Iată un tabel care conține valorile din event.which
.
|
|
|
Zell Liew a observat că 3 dintre aceste coduri de chei erau diferite în Firefox decât restul browserelor
;
este 59 în Firefox, dar 186 în alte browsere.=
este 61 în Firefox, dar 187 în alte browsere.-
este 173 în Firefox, dar 189 în alte browsere.
Notă importantă: aceste valori ale codului cheie sunt valabile numai în timpul keydown
și keyup
evenimentele. Pe Mac, keypress
evenimentele vă oferă un set complet diferit de coduri.
De exemplu:
Cheie | event.which în keydown | event.which în apăsarea tastei |
A | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |