首页 > 解决方案 > Javascript KeyboardEvent CTRL + ALT + KEY 快捷键。Event.key 不是 KEY 而是特殊字符

问题描述

我有一个带有快捷方式的应用程序。快捷方式由需要按下以触发它们的键以及应该发生的相应操作来定义。

在键盘上按 CTRL + ALT + e 时,触发的 keydown KeyboardEvent.key 值不是“e”而是“€”,因为 CTRL + ALT + e 也是 € 字符的组合。

所以我不能将快捷方式定义为 CTRL + ALT + e。

我应该将其定义为 CTRL + ALT + € 吗?这对我来说似乎有点 hacky,bc 按下 CTRL + ALT + e 不会在所有机器上产生€。

我考虑过使用 KeyboardEvent.code 而不是 KeyboardEvent.key。但按照我的理解,KeyboradEvent.code 取决于键盘布局。不过,它应该始终是字母“e”。

知道我如何仍然可以将快捷方式定义为 CTRL + ALT + e 吗?(它是一个绘图应用程序,'e' 代表边缘,使用任何其他字母都将是不幸的)

标签: javascriptkeyboard-shortcutskeyboard-events

解决方案


它确实有效,但您仍然必须为非 OSX 用户累积其他条件......

if (event.altKey && e.key === "€" || event.altKey && e.key === "e"){
   doSomeThing()
} 

推荐阅读