我正在为Firefox开发虚拟键盘扩展程序。此扩展程序的一个功能是将用户按下的键转换为另一个布局。
示例:我需要在Bashkir布局上键入文本,但我的操作系统不支持它。因此,我可以使用此虚拟键盘扩展而不更改系统设置。
在Windows XP上需要它,它不支持多种语言。
我使用event.keyCode
来检测按下了哪个键。我使用它是因为它检测到密钥代码,尽管系统布局。
但我在Firefox中错过了如果键盘是非英语布局,event.keyCode
无法正常使用某些键,即 [ ] ; ' , 。 / 和 \ 。
如果我输入 q 键,keyCode
会返回81,如果我输入俄语©,这是相同的键,keyCode
也返回81
。但是如果我输入 [键,keyCode
会返回219
,如果我输入俄语х,这是同一个键,{{1 }}返回keyCode
。
是否存在任何0
个替代品?
答案 0 :(得分:11)
KeyboardEvents are described on the linked page on MDN的可用属性。它们包括:
KeyboardEvent.code似乎可以为您提供最佳信息,并且不会弃用。但是,它只能在Firefox的Nightly,Aurora和Developer Edition中从Firefox 32.0获得。从Firefox 38.0开始,它将在标准版本中提供,或者将在标准版本中提供。
您可能需要尝试使用charCode
,code
,key
,keyCode
和which
的各种组合来获取所需的信息。如果您希望支持各种Firefox版本,您几乎肯定必须使用不同属性的组合。