Testador de Eventos de Teclado
Pressione qualquer tecla para ver suas propriedades de evento JavaScript: keyCode, key, code, charCode e estados de modificador. Essencial para depurar manipuladores de atalhos de teclado.
Click here, then press any key
Key event details will appear here
Common Key Codes Reference
| Key | event.key | event.code | keyCode |
|---|---|---|---|
| Enter | "Enter" | "Enter" | 13 |
| Escape | "Escape" | "Escape" | 27 |
| Space | " " | "Space" | 32 |
| Tab | "Tab" | "Tab" | 9 |
| Backspace | "Backspace" | "Backspace" | 8 |
| Delete | "Delete" | "Delete" | 46 |
| ArrowUp | "ArrowUp" | "ArrowUp" | 38 |
| ArrowDown | "ArrowDown" | "ArrowDown" | 40 |
| ArrowLeft | "ArrowLeft" | "ArrowLeft" | 37 |
| ArrowRight | "ArrowRight" | "ArrowRight" | 39 |
| a | "a" | "KeyA" | 65 |
| 1 | "1" | "Digit1" | 49 |
Como Usar Testador de Eventos de Teclado
- 1Clique na área do teclado para focá-la.
- 2Pressione qualquer tecla ou combinação de teclas para ver suas propriedades de evento.
- 3Visualize keyCode, key, code, charCode e estados de modificador em tempo real.
ZenovayAnalytics
Analytics feito para fundadores.
- Acompanhamento de visitantes em tempo real
- Privacidade em primeiro lugar, sem banner de cookies
- Configurado em dois minutos
Ferramentas Relacionadas
Formatador e Validador de JSON
Formate, valide e embeleze dados JSON com destaque de sintaxe e detecção de erros.Decodificador JWT
Decodifique e inspecione tokens JWT. Visualize cabeçalho, payload e verifique assinaturas.Codificar/Decodificar Base64
Codifique texto para Base64 ou decodifique Base64 de volta para texto. Suporta dados UTF-8 e binários.Encode/Decode de URL
Codifique ou decodifique componentes de URL. Trate caracteres especiais, strings de consulta e URLs completas.Perguntas Frequentes
Qual é a diferença entre event.key, event.code e event.keyCode?▾
event.key: o valor lógico da chave — o que a chave produz baseado no layout do teclado e modificadores. "a" sem modificadores, "A" com Shift, "Enter", "ArrowLeft". Com suporte a localização. event.code: a localização física da chave no teclado, independente do layout. "KeyA", "Enter", "ArrowLeft", "Digit1". Mesmo código independentemente se Shift está pressionado. event.keyCode (descontinuado): um código numérico. Varia por navegador e SO. Use event.key ou event.code em vez disso. Melhor prática: use event.key para entrada de caracteres, event.code para atalhos baseados em posição (como WASD em jogos).
Como detecto teclas modificadoras (Ctrl, Alt, Shift, Meta)?▾
Verifique as propriedades booleanas no evento: event.ctrlKey, event.shiftKey, event.altKey, event.metaKey (⌘ no Mac, ⊞ no Windows). Exemplo: if (event.ctrlKey && event.key === "s") saveDraft(). As próprias teclas modificadoras disparam eventos keydown com valores de chave "Control", "Shift", "Alt", "Meta". Para atalhos multiplataforma: use ctrlKey para Ctrl em Windows/Linux mas metaKey para ⌘ no Mac: const isModKey = event.ctrlKey || event.metaKey. KeyboardEvent.getModifierState("CapsLock") verifica estados modificadores persistentes.
Qual é a diferença entre keydown, keypress e keyup?▾
keydown: dispara quando a chave é pressionada inicialmente. Dispara repetidamente se mantida. Funciona para todas as chaves incluindo Ctrl, Shift, teclas de seta. Melhor para: atalhos, controles de jogo, prevenção padrão. keypress (descontinuado): dispara apenas para chaves que produzem caracteres. Não dispara para teclas de seta, backspace, etc. Descontinuado em favor de keydown + event.key. keyup: dispara quando a chave é solta. Dispara apenas uma vez por pressionamento de chave. Melhor para: detectar quando uma chave foi pressionada sem repetição. Eventos Input (input, change): melhor para rastreamento de entrada de texto do que eventos de teclado.
Como previno atalhos de teclado padrão do navegador?▾
Chame event.preventDefault() no handler keydown. Exemplo: document.addEventListener("keydown", (e) => { if (e.ctrlKey && e.key === "s") { e.preventDefault(); save(); } }). Limitações: alguns atalhos em nível de SO (Ctrl+Alt+Delete, tecla Win, mission control) não podem ser prevenidos. Atalhos de navegador variam por navegador. Em iframes, alguns atalhos podem ser interceptados pelo pai. Eventos sintéticos React: event.nativeEvent.preventDefault() ou event.preventDefault() ambos funcionam. Nota: event.stopPropagation() previne o evento de fazer bubbling, mas não previne o comportamento padrão do navegador.
Como manipulo eventos de teclado em React?▾
React usa eventos sintéticos: onKeyDown, onKeyUp, onKeyPress (descontinuado). Exemplo: <input onKeyDown={(e) => { if (e.key === "Enter") submit(); if (e.key === "Escape") cancel(); }}/>. Para atalhos globais: use useEffect para adicionar/remover listeners de eventos nativos. Sempre remova listeners na limpeza: useEffect(() => { const handler = (e) => {...}; window.addEventListener("keydown", handler); return () => window.removeEventListener("keydown", handler); }, []). Para sistemas de atalho complexos, use bibliotecas como react-hotkeys-hook ou tinykeys.