1001Ferramentas
⌨️ Dev

Keycode Info

Pressione qualquer tecla e veja `event.key`, `event.code`, `keyCode`, `which` e `location`. Útil para criar atalhos, jogos e formulários que reagem a teclado. Tudo no navegador.

Pressione qualquer tecla com este painel em foco.

event.key
event.code
event.keyCode (legacy)
event.which (legacy)
event.location
Modificadores

Descubra o código de qualquer tecla

Quem programa interações de teclado em JavaScript precisa saber com exatidão quais valores cada tecla dispara. A ferramenta mostra isso na tela: clique no campo do painel para deixá-lo em foco e pressione uma tecla — os campos do evento aparecem todos juntos, event.key, event.code, keyCode, which e location.

Para criar atalhos, jogos que reagem ao teclado, formulários com navegação customizada ou qualquer recurso que capture teclas, isso é fundamental. Em vez de consultar tabelas desatualizadas (o keyCode, por exemplo, já está obsoleto), você enxerga os valores reais que o navegador entrega para aquela tecla específica.

Roda inteiramente no navegador, sem instalar nada. Funciona como uma referência viva para o desenvolvedor front-end depurar eventos de teclado com precisão.

Perguntas frequentes

Apertei uma tecla e nada mudou na tela
O painel escuta apenas o campo de texto do topo, e só o evento keydown. A página coloca o cursor nele ao carregar, mas se você clicou em outro ponto, rolou a página ou trocou de aba, o foco saiu e as teclas deixam de ser registradas: clique no campo de novo. Combinações que o sistema operacional intercepta antes do navegador, como Alt+Tab, Cmd+Q ou Cmd+Espaço, não chegam à página e nunca vão aparecer. Nada é digitado no campo porque o comportamento padrão da tecla é cancelado.
Por que event.key aparece entre aspas e os outros campos não?
Porque esse valor é impresso serializado, o que torna visível o que uma string solta esconderia. A barra de espaço aparece como um par de aspas com um espaço no meio, em vez de parecer campo vazio; o Enter aparece como Enter entre aspas; e uma tecla morta de acento aparece como Dead. Os campos code, keyCode, which e location saem crus, sem aspas, porque não carregam essa ambiguidade.
keyCode e which mostram o mesmo número. Qual deles eu uso?
Nenhum dos dois em código novo. Ambos são legado e o navegador preenche os dois com o mesmo valor apenas por compatibilidade. Use event.key quando o que importa é o caractere produzido, que muda com Shift e com o layout, e event.code quando importa a posição física da tecla: a que fica ao lado do Tab é KeyQ no QWERTY e continua KeyQ num teclado AZERTY, onde key devolve a letra a. O campo location resolve a outra dúvida clássica, separando Shift esquerdo do direito e o teclado numérico, com os valores STANDARD, LEFT, RIGHT e NUMPAD.

Ferramentas Relacionadas