code e keyCode de 120 teclas
Os valores que um KeyboardEvent entrega. code é a posição física e não muda com o layout; key é o que realmente se digita, e isso muda.
code versus key
code é a posição física, a mesma num teclado coreano ou francês. key é o que se digita e muda — o mesmo lugar dá a, A ou ㅁ. Use code para saber qual lugar foi pressionado e key para saber o que entrou.
keyCode saiu do padrão. Escreva código novo com code ou key; os números daqui servem para ler código antigo.
Letras26
A posição é fixa como KeyA. Mesmo que saia um ㅁ coreano, o code continua KeyA.
Dígitos10
A linha de números. Os keyCode diferem dos mesmos dígitos no teclado numérico.
Sinais12
É aqui que os valores de keyCode se separam entre navegadores.
Teclado numérico16
location é 3, e é isso que o separa da linha de números.
Teclas F20
F1 é 112, F2 é 113, e assim por diante.
Navegação8
Não digitam nada; só movem o cursor.
Edição6
Apagar, inserir, quebrar linha.
Modificadoras8
Sozinhas não fazem nada e se apoiam em outras. Esquerda e direita dividem o keyCode.
Travas3
Aperta uma vez e o estado fica trocado.
Sistema4
Teclas que lidam com janelas e tela.
Método de entrada7
Teclas que trocam o método de entrada — hangul, hanja e as de conversão japonesa.
Como ler
- code é a posição e key o caractere digitado. Para atalhos, compare com code.
- keyCode está obsoleto; use apenas para ler código antigo.
- Shift esquerdo e direito dividem o keyCode e se separam por location.
- O 1 da linha e o 1 do teclado numérico são teclas diferentes: 49 e 97.
Perguntas frequentes
Q. Devo usar code ou key?
code quando você precisa da posição, como em atalhos; key quando precisa do que foi digitado. code sobrevive à troca de layout.
Q. Por que evitar keyCode?
Saiu do padrão e os navegadores discordam dos valores, sobretudo nos sinais.
Q. Qual é o código do Enter?
keyCode 13, code Enter. O Enter do teclado numérico tem code NumpadEnter mas o mesmo keyCode 13.
Q. Como distinguir Shift esquerdo do direito?
Pelo keyCode não dá: ambos são 16. Use code (ShiftLeft, ShiftRight) ou location (1, 2).
Q. O code é o mesmo num teclado coreano?
É. Apertar o lugar que digita ㅁ continua dando KeyA, porque code nomeia a posição.