背景:我已经存储了一个键修饰符和一个键码值,例如["shiftKey", 32]
(=> shift + space)或[undefined, 32]
(=> space)用户的机器。我存储的这个数组充当“热键”,即,我应该检测用户何时按下与热键匹配的任何键。因此,例如,当用户按下Shift + Space时,我应该做某事。就功能而言,到目前为止,它仍然可以正常工作,因为keyCode仍然匹配。唯一的问题是...
问题:我无法以文本形式正确显示keyCode
。 (“?”键在我的系统上有keyCode=191
,但显然在执行String.fromCharCode
时无法正确显示)
我建议的解决方案:将[key modifier, keyCode]
数组转换为[key modifier, key, code]
(因为key
和code
属性可以很容易地显示为文本)。我将编写的转换代码将在用户的计算机上运行(这是Chrome扩展程序),因此不必担心没有用户的语言环境信息。问题是:如何准确执行此转换?
我的尝试:基于keyCode
并使用从那里生成的key
和code
值,将程序键盘事件发送到伪造的文本框。转换结果。但是,我能找到的唯一properly working fiddle要求我实际提供key
和code
的值,否则它们将是未定义的。
最后一个问题:还有什么其他方式可以执行此转换?还是有其他解决方法可以实现我想要的?