我正在使用Chrome浏览器使用javascript(在macbook pro OSX 10.11.x上,不确定这是否重要)。 我正在使用这个功能:
window.onkeypress = function(e) {
var key = e.keyCode ? e.keyCode : e.which;
console.log("keypressed = " + key);
}
当我按下键盘上的'a'键时,它会记录为97,但是这与我在互联网上找到的任何其他keyCode列表不一致,后者表示'a'是65。
对于其他键也是如此,例如,'s'对我来说是115,但是其他人都说's'是83。
我缺少依赖吗?如果我发出一个假设== 95的事件,它会在其他浏览器上运行吗?
感谢。
答案 0 :(得分:7)
大写字母与小写字母不同,产生不同的代码。
此外,keypress
事件与keyup
或keydown
事件的工作方式不同。 keypress
响应可打印字符并提供生成的字符的代码。使用keyup
和keydown
,代码表示按下的键盘上的物理硬件密钥。例如,如果您运行下面的代码段并只按 SHIFT 键,则根本不会看到keypress
事件日志消息,因为该事件不会触发该键
window.addEventListener("keyup", function(e) {
var key = e.keyCode ? e.keyCode : e.which;
console.log("key up = " + key, e.key);
});
window.addEventListener("keydown", function(e) {
var key = e.keyCode ? e.keyCode : e.which;
console.log("key down = " + key, e.key);
});
window.addEventListener("keypress", function(e) {
var key = e.keyCode ? e.keyCode : e.which;
console.log("key pressed = " + key, e.key);
});

Just click in this area to give it the focus, then press some keys.

答案 1 :(得分:1)