Javascript密码为:65或97?

时间:2017-07-27 21:07:45

标签: javascript keycode

我正在使用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的事件,它会在其他浏览器上运行吗?

感谢。

2 个答案:

答案 0 :(得分:7)

大写字母与小写字母不同,产生不同的代码。

此外,keypress事件与keyupkeydown事件的工作方式不同。 keypress响应可打印字符并提供生成的字符的代码。使用keyupkeydown,代码表示按下的键盘上的物理硬件密钥。例如,如果您运行下面的代码段并只按 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)

所以我发现资本A确实是65岁。

小写a是97

请参阅此图表:

enter image description here

图表原始位置:http://www.asciitable.com/