event.keyCode替代方案

时间:2015-03-25 08:18:16

标签: javascript firefox javascript-events firefox-addon

我正在为Firefox开发虚拟键盘扩展程序。此扩展程序的一个功能是将用户按下的键转换为另一个布局。

示例:我需要在Bashkir布局上键入文本,但我的操作系统不支持它。因此,我可以使用此虚拟键盘扩展而不更改系统设置。

在Windows XP上需要它,它不支持多种语言。 我使用event.keyCode来检测按下了哪个键。我使用它是因为它检测到密钥代码,尽管系统布局。

但我在Firefox中错过了如果键盘是非英语布局,event.keyCode无法正常使用某些键,即 [ ] ; ' / \

如果我输入 q 键,keyCode会返回81,如果我输入俄语©,这是相同的键,keyCode也返回81。但是如果我输入 [键,keyCode会返回219,如果我输入俄语х,这是同一个键,{{1 }}返回keyCode

是否存在任何0个替代品?

1 个答案:

答案 0 :(得分:11)

KeyboardEvents are described on the linked page on MDN的可用属性。它们包括:

KeyboardEvent.code似乎可以为您提供最佳信息,并且不会弃用。但是,它只能在Firefox的Nightly,Aurora和Developer Edition中从Firefox 32.0获得。从Firefox 38.0开始,它将在标准版本中提供,或者将在标准版本中提供。

您可能需要尝试使用charCodecodekeykeyCodewhich的各种组合来获取所需的信息。如果您希望支持各种Firefox版本,您几乎肯定必须使用不同属性的组合。