0

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

我的 javascript 只是在窃听,或者其他什么。

当我使用链接并按 W 时,我得到 87 作为响应。

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

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

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

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

这发生在 Chrome 和 IE 中。

是什么赋予了?

4

2 回答 2

2

注意:由于 keypress 事件未包含在任何官方规范中,因此使用它时遇到的实际行为可能因浏览器、浏览器版本和平台而异。

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

也许你应该使用keydown

于 2013-10-10T00:07:43.423 回答
2

实际上,keyup用于keydown识别物理键和keypress(redundant) 用于识别键入的字符,因此使用keypress事件,W/capital(87) 和w/lower(119) 会给出不同的结果,但keydown总会给你87。因此,正如其他答案所述,您应该使用keydown.

阅读更多关于quirksmode.org 的信息。

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

于 2013-10-10T00:20:30.023 回答