Keď dôjde k KeyboardEvent
požiaru, môžete vyskúšať, ktorá klávesa bola stlačená, pretože táto udalosť obsahuje informácie, proti ktorým môžete písať logiku.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Napríklad stlačením „a“ získate 65
. Zdá sa, že je najlepšie napísať logiku, proti ktorej sú keyCode a charCode komplikované:
Vlastnosť event.which normalizuje event.keyCode a event.charCode. Pri zadávaní klávesov z klávesnice sa odporúča sledovať event.which.
A:
V prípade stlačenia klávesu sa hodnota Unicode stlačeného klávesu uloží buď do vlastnosti keyCode, alebo charCode, nikdy nie do oboch. Ak stlačené tlačidlo vygeneruje znak (napr. „A“), charCode sa nastaví na kód tohto znaku, pričom sa zohľadnia malé a veľké písmená. (tj charCode berie do úvahy, či je kláves Shift držaný stlačený). V opačnom prípade je kód stlačeného klávesu uložený v keyCode.
Nástroj na testovanie
Prezrite si tester udalostí event.keyCode od Pen, Chris Coyier (@chriscoyier) na CodePen.
Hodnoty kľúčového kódu
Tu je tabuľka, ktorá obsahuje hodnoty z event.which
.
|
|
|
Zell Liew si všimol, že 3 z týchto kódov sa vo Firefoxe líšia od ostatných prehľadávačov
;
je 59 vo Firefoxe, ale 186 v iných prehliadačoch.=
je 61 vo Firefoxe, ale 187 v iných prehliadačoch.-
je 173 vo Firefoxe, ale 189 v iných prehliadačoch.
Dôležitá poznámka: Tieto hodnoty kódov kľúčov sú platné iba počas udalostí in keydown
a keyup
. V systéme Mac keypress
vám udalosti poskytujú úplne inú sadu kódov.
Napríklad:
Kľúč | event.which v keydown | event.which pri stlačení klávesu |
a | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |