Como descobrir qual tecla de caractere é pressionada?

Gostaria de descobrir qual tecla de caractere é pressionada de forma compatível com vários navegadores no javascript puro.

JavaScript “claro”:

  

JQuery:

 $(document).keypress(function(event){ alert(String.fromCharCode(event.which)); }); 

Há um milhão de duplicatas desta questão aqui, mas aqui vai outra vez:

 document.onkeypress = function(evt) { evt = evt || window.event; var charCode = evt.keyCode || evt.which; var charStr = String.fromCharCode(charCode); alert(charStr); }; 

A melhor referência sobre os principais events que vi é http://unixpapa.com/js/key.html .

Mais recente e muito mais limpo: use event.key . Não há mais códigos numéricos arbitrários!

 node.addEventListener('keydown', function(event) { const key = event.key; // "a", "1", "Shift", etc. }); 

Se você quiser ter certeza de que apenas caracteres únicos sejam typescripts, marque key.length === 1 ou que seja um dos caracteres que você espera.

Mozilla Docs

Navegadores Suportados

Dê uma olhada neste site para inconsistências entre navegadores http://www.quirksmode.org/js/keys.html

Use este:

 function onKeyPress(evt){ evt = (evt) ? evt : (window.event) ? event : null; if (evt) { var charCode = (evt.charCode) ? evt.charCode :((evt.keyCode) ? evt.keyCode :((evt.which) ? evt.which : 0)); if (charCode == 13) alert('User pressed Enter'); } } 
 **check this out** < !DOCTYPE html>          

Uma das minhas bibliotecas favoritas para fazer isso de uma maneira sofisticada é a Ratoeira .

Ele vem abastecido com uma variedade de plugins, um dos quais é o plugin de record que pode identificar uma seqüência de teclas pressionadas.

Exemplo:

   

Este caso pode ser resolvido por um link:

http://keycode.info/

Não vejo diferenças entre o Chrome e o IE, mas se você estiver realmente curioso para saber quais códigos são exibidos pelo navegador, basta visualizar este website em cada navegador para registrar os resultados. Tenho certeza de que os códigos-chave são todos iguais. A visualização do código-fonte no site pode fornecer algumas dicas sobre como esses códigos também são determinados.

 document.onkeypress = function(event){ alert(event.key) }