将keyCode转换为实际的键和代码值

时间:2019-06-27 12:56:27

标签: javascript google-chrome-extension keycode

背景:我已经存储了一个键修饰符和一个键码值,例如["shiftKey", 32](=> shift + space)或[undefined, 32](=> space)用户的机器。我存储的这个数组充当“热键”,即,我应该检测用户何时按下与热键匹配的任何键。因此,例如,当用户按下Shift + Space时,我应该做某事。就功能而言,到目前为止,它仍然可以正常工作,因为keyCode仍然匹配。唯一的问题是...

问题:我无法以文本形式正确显示keyCode。 (“?”键在我的系统上有keyCode=191,但显然在执行String.fromCharCode时无法正确显示)

我建议的解决方案:将[key modifier, keyCode]数组转换为[key modifier, key, code](因为keycode属性可以很容易地显示为文本)。我将编写的转换代码将在用户的计算机上运行(这是Chrome扩展程序),因此不必担心没有用户的语言环境信息。问题是:如何准确执行此转换?

我的尝试:基于keyCode并使用从那里生成的keycode值,将程序键盘事件发送到伪造的文本框。转换结果。但是,我能找到的唯一properly working fiddle要求我实际提供keycode的值,否则它们将是未定义的。

最后一个问题:还有什么其他方式可以执行此转换?还是有其他解决方法可以实现我想要的?

0 个答案:

没有答案