【发布时间】:2021-09-23 15:26:25
【问题描述】:
我们在我工作的公司遇到了一个有趣的错误:我们有一个包含许多快捷键的应用程序,包括“`”(反引号字符),并且因为KeyboardEvent.keyCode has been deprecated,它在重构时被更改了
KeyboardEvent.keyCode === 192
到
KeyboardEvent.key === '`'
这适用于未激活变音符号的键盘 - 例如,没有变音符号的美式键盘,按下 ` 键会立即写入 ` 字符 - 而对于激活变音符号的用户,则不会(在这种情况下,键入 `需要先按 ` 键,然后按空格),因为如果按 ` 键,然后按字母 a,例如,您会得到字符 à。显然激活变音符号后,KeyboardEvent.key 返回Dead,所以我们不得不恢复这个重构。
话虽如此,使用这个已弃用的功能是否有不同的选择?
【问题讨论】:
-
问题是你想检索什么信息?我的意思是
192不一定代表`,对于德国布局,它是例如187. -
@t.niese 这个想法是在用户按下 Tab 键上方的键时触发一个事件。
-
那么
tab上面的物理键到底是什么? -
是的,就是这个想法。不过,我不确定它是否在美国以外的其他布局中进行了测试。
-
好的,因为
code是Backquote将等于在德国布局的键盘上按下^键(tab 键上方的那个)。当在德国布局上按下´时,您将得到Equal作为code。并且`没有专用密钥,但可以使用Shift key+´。
标签: javascript events keyboard-events