如何找出什么字符键被按下?

我想了解在纯JavaScript中跨浏览器兼容的方式按什么字符键。

“清除”JavaScript:

 <script type="text/javascript"> function myKeyPress(e){ var keynum; if(window.event) { // IE keynum = e.keyCode; } else if(e.which){ // Netscape/Firefox/Opera keynum = e.which; } alert(String.fromCharCode(keynum)); } </script> <form> <input type="text" onkeypress="return myKeyPress(event)" /> </form> 

JQuery的:

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

在这里有一百万个这个问题的重复,但是无论如何,

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

我所看到的关键事件的最佳参考是http://unixpapa.com/js/key.html

为确保强大的跨浏览器支持 ,请使用像jQuery这样的库 :请参阅键盘事件

当然,还有其他的Javascript库:

  • 原型
  • Motools
  • Yahoo UI
  • 等等

看看这个网站的跨浏览器不一致http://www.quirksmode.org/js/keys.html

 **check this out** <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){ $(document).keypress(function(e) { var keynum; if(window.event) { // IE keynum = e.keyCode; } else if(e.which) { // Netscape/Firefox/Opera keynum = e.which; } alert(String.fromCharCode(keynum)); var unicode=e.keyCode? e.keyCode : e.charCode; alert(unicode); }); }); </script> </head> <body> <input type="text"></input> </body> </html> 

我最喜欢的一个以复杂的方式来完成这个工作的图书馆是Mousetrap 。

它有各种各样的插件,其中之一是record插件,可以识别一系列按键。

例:

 <script> function recordSequence() { Mousetrap.record(function(sequence) { // sequence is an array like ['ctrl+k', 'c'] alert('You pressed: ' + sequence.join(' ')); }); } </script> <button onclick="recordSequence()">Record</button> 

使用这个:

 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'); } } 

最近更清洁:使用event.key 。 没有更多的任意数字代码!

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

Mozilla文档

支持的浏览器