我不确定为什么会这样。类似的事情已经发生了,但它们通常是由于键盘记录器或类似的东西。
我的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中都会发生。
是什么给出了?
答案 0 :(得分:2)
注意:由于任何官方规范都未涵盖按键事件,因此使用它时遇到的实际行为可能因浏览器,浏览器版本和平台而异。
来源: http://api.jquery.com/keypress/
也许您应该使用keydown
?
答案 1 :(得分:2)
实际上,keyup
和keydown
用于识别物理密钥,keypress
(冗余)用于识别键入的字符,因此使用keypress
事件W/capital
(87 )和w/lower
(119)会给出不同的结果,但keydown
将始终为您提供87
。因此,正如其他答案所述,您应该使用keydown
。
详细了解quirksmode.org。
因此,onkeydown / up keyCode始终保存密钥代码。 onkeypress事件 你可以找到用户通过evt.charCode ||输入的实际字符 evt.keyCode。