keyCode只是给出了错误的响应

时间:2013-10-10 00:02:52

标签: javascript html5

我不确定为什么会这样。类似的事情已经发生了,但它们通常是由于键盘记录器或类似的东西。

我的javascript只是喋喋不休,或其他什么。

当我使用this链接并按W时,我得到87作为回复。

但是,当我运行自己的代码时,看起来就像这样:

var keydown = function(e) {
    console.log(e.keyCode); //I've also tried charCode
}

window.addEventListener("keypress", keydown, false);

当我按下W时,我得到了数字119。

这在Chrome和IE中都会发生。

是什么给出了?

2 个答案:

答案 0 :(得分:2)

  

注意:由于任何官方规范都未涵盖按键事件,因此使用它时遇到的实际行为可能因浏览器,浏览器版本和平台而异。

来源: http://api.jquery.com/keypress/

也许您应该使用keydown

答案 1 :(得分:2)

实际上,keyupkeydown用于识别物理密钥,keypress(冗余)用于识别键入的字符,因此使用keypress事件W/capital(87 )和w/lower(119)会给出不同的结果,但keydown将始终为您提供87。因此,正如其他答案所述,您应该使用keydown

详细了解quirksmode.org

  

因此,onkeydown / up keyCode始终保存密钥代码。 onkeypress事件   你可以找到用户通过evt.charCode ||输入的实际字符   evt.keyCode。