小编mag*_*r72的帖子

Chrome 中的 JavaScript keydown 不捕获输出多个 Unicode 字符的单个按键

我正在使用意第绪语,其中一些字母由两个 Unicode 字符组成。例如, \xd7\x90\xd6\xb7 由U+05D0+组成U+05B7。这些字符有单一的代码变体(例如U+FB2E\xef\xac\xae),但大多数键盘采用前一种方法。

\n

我想使用 捕获意第绪语键盘的输入keydown,但我在使用这些输出多个 Unicode 字符的键时遇到问题。特别是,我使用一个简单的代码:

\n
$(document).keydown(function (event) {\n    if (!event.metaKey) {\n        console.log(event.key);\n    }\n});\n
Run Code Online (Sandbox Code Playgroud)\n

在JSFiddle上查看它。

\n

我在 Windows 上,在 Firefox 上,当我按 \xd7\x90\xd6\xb7 (这是我键盘上的字母 A,并输出U+05D0 U+05B7)时,我得到了预期的结果:即控制台记录 \ xd7\x90\xd6\xb7。但是,在 Chrome(版本 98)上,我得到“Unidentified”作为输出(尽管我得到了输出单个 Unicode 字符的任何键的预期结果)。同样的事情也发生在 Edge 上。我没有 Mac,但一位朋友为我进行了测试,结果发生了更奇怪的事情:它记录了U+05B7但没有记录U+05D0. 不过,Safari 对他来说效果很好。

\n

知道发生了什么事以及如何解决它吗?

\n

javascript unicode google-chrome keydown

6
推荐指数
0
解决办法
141
查看次数

标签 统计

google-chrome ×1

javascript ×1

keydown ×1

unicode ×1