Início·Códigos de tecla

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.