【问题标题】:Javascript Keycode for a: 65 or 97?a 的 Javascript 键码:65 还是 97?
【发布时间】:2017-07-27 21:07:45
【问题描述】:

我正在使用 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。

是否存在我缺少的依赖项?如果我触发一个假设 a == 95 的事件,它会在其他浏览器上工作吗?

谢谢。

【问题讨论】:

  • “keypress”事件不会给你键码,它会给你字符码
  • 字符(chr)代码asciitable.com
  • a = 97 和 A = 65
  • @Pointy 谢谢,因为函数是 .keyCode(),我继续搜索 javascript 键码。我现在意识到小写a确实是97,大写是65。谢谢!

标签: javascript keycode


【解决方案1】:

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

此外,keypress 事件的工作方式与 keyupkeydown 事件不同。 keypress 响应可打印字符并给出生成字符的代码。对于keyupkeydown,代码表示键盘上按下的物理硬件键。例如,如果您运行下面的 sn-p 并仅按 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.

【讨论】:

  • 这并不直接回答 OP 的问题,而是 +1 以说明根据事件返回的值的差异
  • @CrayonViolent 我正在处理那个编辑,然后不得不接听电话。答案已更新。
【解决方案2】:

所以我发现A确实是大写,65。

小写的a是97

请看这张图表:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 2011-05-04
    • 2015-06-17
    相关资源
    最近更新 更多