KeyboardEvent-værdi (keyCodes, metaKey osv.) - CSS-tricks

Anonim

Når en KeyboardEventfyrer, kan du teste, hvilken tast der blev trykket på, fordi begivenheden indeholder oplysninger, du kan skrive logik mod.

document.addEventListener("keydown", function(event) ( console.log(event.which); ))

For eksempel, ved at trykke på “a”, får du 65. Det er tilsyneladende bedst at skrive logik, som keyCode og charCode er kompliceret mod:

Event.which egenskaben normaliserer event.keyCode og event.charCode. Det anbefales at se event.which til tastaturindgang.

Og:

I en tastetrykbegivenhed gemmes Unicode-værdien for den tast, der trykkes på, i keyCode- eller charCode-ejendommen, aldrig begge. Hvis tasten, der trykkes på, genererer et tegn (f.eks. 'A'), indstilles charCode til koden for det tegn, der respekterer bogstavet. (dvs. charCode tager højde for, om shift-tasten holdes nede). Ellers gemmes koden for den trykte tast i keyCode.

Testværktøj

Se Pen event.keyCode-testeren af ​​Chris Coyier (@chriscoyier) på CodePen.

Nøglekodeværdier

Her er en tabel, der indeholder værdierne fra event.which.

Nøgle Kode
backspace 8
fanen 9
gå ind 13
flytte 16
ctrl 17
alt 18
pause 19
Caps Lock 20
flugt 27
(plads) 32
side op 33
side ned 34
ende 35
hjem 36
venstre pil 37
pil op 38
højre pil 39
pil ned 40
indsæt 45
slet 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
-en 65
b 66
c 67
d 68
Nøgle Kode
e 69
f 70
g 71
h 72
jeg 73
j 74
k 75
l 76
m 77
n 78
o 79
s 80
q 81
r 82
s 83
t 84
u 85
v 86
w 87
x 88
y 89
z 90
venstre vinduetast 91
højre vinduetast 92
vælg tast 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103
Nøgle Kode
numpad 8 104
numpad 9 105
formere sig 106
tilføje 107
trække fra 109
decimaltegnet 110
dele 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
num lock 144
scroll Lock 145
semikolon 186
lige tegn 187
komma 188
streg 189
periode 190
skråstreg 191
alvorlig accent 192
åben beslag 219
skråstreg 220
tæt braket 221
enkelt tilbud 222

Zell Liew bemærkede, at 3 af disse nøglekoder var forskellige i Firefox end resten af ​​browserne

  • ; er 59 i Firefox, men 186 i andre browsere.
  • = er 61 i Firefox, men 187 i andre browsere.
  • - er 173 i Firefox, men 189 i andre browsere.

Vigtig note: Disse nøglekodeværdier er kun gyldige under ind- keydownog keyupbegivenheder. På Mac giver keypressbegivenheder dig et helt andet sæt koder.

For eksempel:

Nøgle event.which i keydown event.which med tastetryk
-en 65 97
b 66 98
c 67 99