通过 KeyboardEvent.code 找出 KeyboardEvent.key

问题描述

KeyboardEvent 有 2 个属性

如何在没有事件本身的情况下让 key 拥有 code? 所以我只有事件之外的 code 值,想知道 key 与它有什么关联。

解决方法

key 中可靠地猜出 code 是不可能的,因为 code 指的是被按下的物理键,而 key 的值取决于键盘布局。例如,在我的德国 QWERTZ 键盘上,对应于 key 'BracketLeft' 的 code 是 'ü',而在美国 QWERTY 键盘上则是 ']'。

如果您的目标是告诉您的用户按哪个键来触发某些操作,您可以尝试其他一些方法:

  • 创建一个突出显示按键的键盘图像并将其显示为提示
  • 以某种方式让您的用户按下该键,这样您就可以观察实际事件并以这种方式了解适当的 key
  • 为您的用户最有可能使用的键盘布局创建 code -> key 映射,并根据浏览器区域设置和/或观察到的键盘事件猜测正确的映射

这些选项都不是完美的,但我认为可以让您非常接近。

,

您可能想在 json 文件中存储代码关联数组 -> 键?我没有看到其他解决方案

,

我希望我答对了您的问题,如果是这样,我想您的问题在这里得到了解答:Get Character value from KeyCode in JavaScript... then trim

我认为您正在寻找的功能是:

String.fromCharCode(e.keyCode);