javascript - 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' 代表边缘,使用任何其他字母都将是不幸的)
解决方案
它确实有效,但您仍然必须为非 OSX 用户累积其他条件......
if (event.altKey && e.key === "€" || event.altKey && e.key === "e"){
doSomeThing()
}
推荐阅读
- javascript - 尝试创建一个基于时间和日期创建预定帖子的函数
- django - Summernote 编辑器字段在 django 中变得不可编辑
- mysql - MySQL 使用连接和查询来聚合统计信息
- wordpress - Wordpress 在自定义帖子类型和 ACF 上结合 get_posts 和 category_name 函数
- symfony - Symfony 学说逆向工程和 Apiplatform
- angular - Cypress Docker 容器无法安装 NPM 依赖项
- r - dplyr 中的嵌套 group_by 操作:第二次调用是否包含第一次调用?
- c - 导致 EXC_BAD_ACCESS 的指针分配
- macos - brew安装时分配依赖项python版本
- android - 如何创建大型离线数据存储库 Android 应用程序?