我正在编写一个 web 应用程序,当用户在 web 表单中键入时,我会在其中收集击键。到目前为止,它在桌面上运行良好,但在移动设备上,尤其是 Android 设备上却不行。这些行为是不可预测的。例如:
- 退格键/删除键在某些设备上不会触发按键事件,但在其他一些设备上会触发。
- 修饰键(又名 Shift 键)在某些设备上不会触发按键事件,但会在其他设备上触发。
- 在某些设备上可以正确检测到键码,而在其他设备上则不能。
例如,在三星 S4 上,使用 native 浏览器将始终为任何键提供等于零的键码。当我在三星 S4 上使用 chrome 浏览器版本 45.0.2454.84 时,大多数键的键码始终为 229。
在 Samsung Galaxy Ace 2 上使用 native 浏览器,我得到了所有键的正确键码(与我在桌面上使用硬件键盘得到的相同键码)但是 shift/modifier 键没有触发
使用 Sony Xperia M4 Aqua,chrome 浏览器版本 45.0.2454.84 我得到了所有键的正确键码。 Agin 修饰键不触发。当我在 Sony Xperia 上使用 native 浏览器时,我得到的键码为零。
即使使用相同的浏览器“chrome 浏览器版本 45.0.2454.84”在不同的设备上提供不同的行为,我也找不到真正的模式。
在 iPhone iPad 和 Windows Phone 上我没有这个问题。
最佳答案
为此,我刚刚在 Chromium 中标记了一个错误。 https://code.google.com/p/chromium/issues/detail?id=531234
关于javascript - JS/JQuery keyup 和 keydown Android 设备上不可预测的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32533480/