为了实现一个功能丰富的Web应用程序,我需要键盘快捷键。由于存在许多不同的键盘布局,它们必须是可配置的。不幸的是,我无法找到一种将键盘事件映射到人类可读的快捷键名称(例如Ctrl + Alt + Y或Alt + \)的方法。
keypress
事件对所有键都无效。以下是keydown
事件的一些属性:
charCode
:仅适用于可打印字符。 根据MDN,已弃用code
:有效,但忽略键盘布局。当我按Z键时,在我的德语键盘上我得到code: "KeyY"
。key
:有效,但基于修饰符会产生不同的结果。例如,Shift + 3在我的键盘上产生key: "§"
,在大多数美国键盘上产生key: "#"
。keyCode
:该值不唯一。 Ä、Ö、Ü 或 ^ 的keyCode
均为0。根据MDN,已弃用which
:与keyCode
一样,该值不唯一。根据MDN,已弃用altKey
、ctrlKey
、metaKey
、shiftKey
:用于检测修饰键
我该如何做呢?即使不知道用户的键盘布局,这是否可能?