Valoarea KeyboardEvent (keyCodes, metaKey etc.) - CSS-Tricks

Anonim

Când se KeyboardEventdeclanș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.

Cheie Cod
backspace 8
filă 9
introduce 13
schimb 16
ctrl 17
alt 18
pauză / pauză 19
majuscule 20
evadare 27
(spaţiu) 32
pagină sus 33
in josul paginii 34
Sfârșit 35
Acasă 36
sageata stanga 37
Săgeata în sus 38
sageata dreapta 39
sageata in jos 40
introduce 45
șterge 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
A 65
b 66
c 67
d 68
Cheie Cod
e 69
f 70
g 71
h 72
eu 73
j 74
k 75
l 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
tu 85
v 86
w 87
X 88
y 89
z 90
tasta ferestrei stânga 91
tasta ferestrei din dreapta 92
tasta de selectare 93
tastatură 0 96
tastatură 1 97
numpad 2 98
numpad 3 99
tastatură 4 100
tastatură 5 101
tastatură numerică 6 102
tastatură numerică 7 103
Cheie Cod
tastatură numerică 8 104
tastatură 9 105
multiplica 106
adăuga 107
scădea 109
punct zecimal 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
blocarea numerelor 144
blocare defilare 145
punct şi virgulă 186
semn egal 187
virgulă 188
liniuță 189
perioadă 190
slash înainte 191
accent grav 192
parantez deschis 219
slash spate 220
închide frâna 221
citat unic 222

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 keyupevenimentele. Pe Mac, keypressevenimentele 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