【发布时间】:2021-06-18 20:20:59
【问题描述】:
我们可以使用KeyboardEvent.getModifierState()很好地检测CapsLock是否在iPhone网络浏览器上打开/关闭,并带有示例代码,
function checkCapsLock(e) {
if (e.getModifierState("CapsLock")) {
alert("Caps ON");
}
}
但它不适用于 Android 设备上的浏览器。我已经尝试了许多其他解决方案,在事件上使用 charCode、keyCode、shiftKey、which 等方法,监听器如 keyup、keydown、keypress 等。但没有运气。
我已经浏览了stackoverflow 中提到的答案以及其他链接。但还是没有运气。
有什么解决方法吗?
PS:这不是重复的问题,我是在问安卓网络浏览器的问题!
编辑:在W3C,我们可以观察到 CapsLock 可以在 iPhone 上的 Web 或移动网络浏览器上检测到,但在 Android 设备上的网络浏览器上却检测不到。
【问题讨论】:
-
它应该以同样的方式工作。您使用什么浏览器/版本?
-
@ThomasSablik:我检查了 Android Chrome 浏览器 v89.0.4389.0。
-
developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/… 说它应该从 Chrome 48 开始工作。
-
@ThomasSablik:没错,即使我检查了can I use,但它的表现仍然不如预期!
-
@AniruddhaShevle 正如我在您评论的要点上所说的那样,每个软件键盘对待听众的方式都不同。根据所使用的软件键盘,您可能会注意到未正确触发事件。你用的是哪个软键盘?
标签: javascript android w3c android-browser capslock