javascript - 识别在 Javascript 中按下的物理键盘按钮,而不考虑当前的语言环境?

标签 javascript keyboard dom-events keyboard-events

我想根据键盘上按下的键来设置事件处理程序。这对于常见的键盘字母(如(0-9、A-Z 等)来说相当简单,因为它们在键盘上的位置在所有键盘上几乎相同,并且键码可用于识别按下的键。 (使用 event.which() )

但是,我想设置处理程序,以便我可以根据键在键盘上的位置来识别它们。例如,美国 (:/;) 与瑞典语 (Ö/ö) 位于同一物理位置,但我希望能够为键盘上的该位置设置一个唯一的处理程序。

在英语中,按“;” event.which() 返回 59
在 Swe 中,按 'ö' event.which() 返回 246
它们都属于键盘上的相同物理位置。 我正在寻找一种解决方案,其中这个物理位置具有唯一 ID。

这是否有可能(不使用可以检测当前语言环境然后使用一些内部 ID 等将键映射到目标语言环境的东西)。

我相信有几种复杂的方法可以解决这个问题,但我对解决这个问题的最简单方法很感兴趣。任何预先编写的库都愉快地接受了。

最佳答案

您必须根据键码映射位置。例如,您可以编写这样的键码; o 映射到 ; 的键码.同样,您需要一个包含围绕该位置解析的所有键码的列表。

抱歉,没有简单的方法。

关于javascript - 识别在 Javascript 中按下的物理键盘按钮,而不考虑当前的语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9977111/

相关文章:

javascript - 获取父属性,它是钛中子元素的表

javascript - jquery 总数

javascript - 如果某些 dom 节点 float : left or they go down to a new line?,我如何用 javascript 判断

长按Android自定义键盘弹出键盘

c# - 如何防止 C# 中窗体的 keydown 事件多次触发?

javascript - React js中防止事件冒泡 'ineffective'

javascript - 每当下载文件时,如何让 Firefox 调用扩展中的函数?

javascript - jQuery 航点不会触发

javascript - 在MVC中打开一个新的窗口表单操作方法

javascript - 使用键盘按键作为导航