android 中来自 KeyboardEvent 的关键代码无法识别?

mil*_*dfm 8 javascript keyboard-events

我会从keydown事件中得到一个字符。

在我可以使用的所有浏览器中event.key,它的工作正常,但在 android 中结果是别的东西

event.key: unidentified
event.code: ''
event.which: `229` (for [a-z0-9] is always this number)
window.event.keyCode: `229`
Run Code Online (Sandbox Code Playgroud)

租用是旧的 stackoverflow 帖子,但它不再起作用了。

用于在 android 中测试的codepen 演示(IOS 和 PC 工作正常)

我如何从中获取密钥代码或密钥字符串 KeyboardEvent

小智 0

虽然这个问题很老了,但我在寻找类似的东西时来到这里,也许这可以帮助其他人。

假设您通过以下方式获取 HTML 文本:

<textarea id="my_input"></textarea>
Run Code Online (Sandbox Code Playgroud)

或者:

<input id="my_input"></input>
Run Code Online (Sandbox Code Playgroud)

假设你想获取JavaScript 中输入的最后一个字符,如果你获取输入的值并将除最后一个字符之外的所有内容都切掉,那么它就可以工作:

document.addEventListener('keyup', function(event) {
    val lastchar = document.getElementById('my_input').value.slice(-1);
});
Run Code Online (Sandbox Code Playgroud)

注意:lastchar 还将包含特殊字符,例如换行符。

这适用于 Android 12,而(正如您所指出的) event.key 不适用于。