我不确定为什么会发生这种情况。类似的事情也发生过,但通常是由于键盘记录程序或类似的原因造成的。
我的 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 中都会发生这种情况。
什么给出了?
最佳答案
实际上,keyup
和keydown
用于识别物理按键,keypress
(冗余)用于识别键入的字符,因此使用keypress
事件,W/capital
(87) 和 w/lower
(119) 给出不同的结果,但 keydown
总是给你 87
。因此,正如其他答案所述,您应该使用 keydown
。
了解更多关于 quirksmode.org .
Therefore, onkeydown/up keyCode always holds the key code. onkeypress you can find the actual character the user typed by evt.charCode || evt.keyCode.
关于javascript - keyCode 只是给出...错误的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284846/