Valor KeyboardEvent (keyCodes, metaKey, etc) - CSS-Tricks

Anonim

Quando um KeyboardEventdispara, você pode testar qual tecla foi pressionada porque esse evento contém informações nas quais você pode escrever a lógica.

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

Por exemplo, pressionando “a”, você obterá 65. Aparentemente, é melhor escrever uma lógica contra a qual, já que keyCode e charCode são complicados:

A propriedade event.which normaliza event.keyCode e event.charCode. Recomenda-se assistir event.which para entrada de tecla do teclado.

E:

Em um evento de pressionamento de tecla, o valor Unicode da tecla pressionada é armazenado na propriedade keyCode ou charCode, nunca em ambos. Se a tecla pressionada gerar um caractere (por exemplo, 'a'), charCode é definido com o código desse caractere, respeitando a caixa das letras. (ou seja, charCode leva em consideração se a tecla shift está pressionada). Caso contrário, o código da tecla pressionada é armazenado em keyCode.

Ferramenta de teste

Veja o testador Pen event.keyCode de Chris Coyier (@chriscoyier) no CodePen.

Valores de código-chave

Aqui está uma tabela que contém os valores de event.which.

Chave Código
backspace 8
aba 9
digitar 13
mudança 16
ctrl 17
alt 18
pausa / pausa 19
Caps Lock 20
escapar 27
(espaço) 32
subir página 33
página para baixo 34
fim 35
casa 36
seta esquerda 37
seta para cima 38
seta direita 39
seta para baixo 40
inserir 45
excluir 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
uma 65
b 66
c 67
d 68
Chave Código
e 69
f 70
g 71
h 72
eu 73
j 74
k 75
eu 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
você 85
v 86
C 87
x 88
y 89
z 90
tecla da janela esquerda 91
tecla da janela direita 92
selecione a chave 93
teclado numérico 0 96
teclado numérico 1 97
teclado numérico 2 98
teclado numérico 3 99
teclado numérico 4 100
teclado numérico 5 101
teclado numérico 6 102
teclado numérico 7 103
Chave Código
teclado numérico 8 104
teclado numérico 9 105
multiplicar 106
adicionar 107
subtrair 109
ponto decimal 110
dividir 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
bloqueio de rolagem 145
ponto e vírgula 186
sinal de igual 187
vírgula 188
traço 189
período 190
barra para frente 191
acento grave 192
colchete aberto 219
barra para trás 220
fechar freio 221
citação única 222

Zell Liew notou que 3 desses códigos-chave eram diferentes no Firefox do resto dos navegadores

  • ; é 59 no Firefox, mas 186 em outros navegadores.
  • = é 61 no Firefox, mas 187 em outros navegadores.
  • - é 173 no Firefox, mas 189 em outros navegadores.

Observação importante: esses valores de código-chave são válidos apenas durante os eventos in keydowne keyup. No Mac, os keypresseventos fornecem um conjunto de códigos completamente diferente.

Por exemplo:

Chave event.which em keydown event.which no teclado
uma 65 97
b 66 98
c 67 99