【问题标题】:javascript - calculate "true" keyCodejavascript - 计算“真实”keyCode
【发布时间】:2012-02-16 09:14:55
【问题描述】:

当我按下键盘上的一个键时,我可以使用 e.keyCode 获取该键的 keyCode。但是我得到的 keyCode 不考虑按下的 alt/ctrl/shift 键,它修改了键码。

幸运的是,我通过事件获得了属性 shiftKey/altKey/ctrlKey,因此我能够计算“真实”键码。

但我不知道如何正确计算。我在哪里可以读到这个? 如果按shift等等,是不是像减32一样简单,还是有很多例外?

【问题讨论】:

  • 有很多例外,如果考虑到国际键盘布局,情况会变得更糟。 javascript 中的高级键盘处理支持非常糟糕。

标签: javascript keycode


【解决方案1】:

您错了,键码不会更改,因为它们指的是键盘上的特定键。不管修饰键是什么,这些代码都保持不变(甚至修饰键本身也有一个键代码)。

捕获 keypress 事件,这将允许您访问字符代码。

el.onkeypress = function (evt) {
    alert( (evt || window.event).charCode );
}

【讨论】:

    【解决方案2】:

    我不明白您为什么要计算“真正的”键码。如果您正在为您的站点/应用程序/其他内容创建快捷方式,您可以简单地检查按下的按钮是否(例如)S 以及是否同时按下了 Ctrl。

    真正的 keyCodes 本身没有任何意义(除非您需要它用于特定的事情)。

    顺便说一句,您应该考虑在您的项目中使用 jQuery。它将 keyCodes 标准化,因此您在任何浏览器(Windows 和操作系统)中都不会出现任何奇怪的行为。我想这更重要。

    【讨论】:

    • 我需要它的外壳,这是必要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2021-06-05
    • 2019-03-07
    • 2016-09-19
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多