Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript在Android设备上的web浏览器上检测Caps Lock?_Javascript_Android_W3c_Android Browser_Capslock - Fatal编程技术网

如何使用JavaScript在Android设备上的web浏览器上检测Caps Lock?

如何使用JavaScript在Android设备上的web浏览器上检测Caps Lock?,javascript,android,w3c,android-browser,capslock,Javascript,Android,W3c,Android Browser,Capslock,我们可以很好地检测CapsLock是否在iPhone web浏览器上,使用示例代码 function checkCapsLock(e) { if (e.getModifierState("CapsLock")) { alert("Caps ON"); } } 但是它在Android设备上的浏览器上不起作用。我尝试了许多其他的解决方案,使用charCode、keyCode、shiftKey等方法对事件进行监听,如keyup、keydown、

我们可以很好地检测CapsLock是否在iPhone web浏览器上,使用示例代码

function checkCapsLock(e) {
  if (e.getModifierState("CapsLock")) {
    alert("Caps ON");
  }
}
但是它在Android设备上的浏览器上不起作用。我尝试了许多其他的解决方案,使用charCode、keyCode、shiftKey等方法对事件进行监听,如keyup、keydown、keypress等,但没有成功

我已经浏览了上面提到的答案以及其他链接。但还是没有运气

有什么解决办法吗

PS:这不是一个重复的问题,我是在安卓网络浏览器上问这个问题


编辑:打开,我们可以观察到CapsLock可以在iPhone的Web或移动Web浏览器上检测到,但在Android设备的Web浏览器上检测不到。

虽然此代码在某些Android设备上有效,但不会在所有设备上都有效,因为在Android中,
e.ShiftKey
被证明是错误的。在android上,这实际上取决于你的键盘

这是我能想到的最好的

document.addEventListener('keyup',函数(事件){
让状态=检查CAPSLOCK(事件);
document.getElementById(“status”).innerHTML+=('status:'+status+'');
});  
功能检查CapsLock(e){
e=e?e:window.event;
if(例如getModifierState('CapsLock'))
返回true;
设isShiftOn=e.shiftKey;
设s=e.key;
如果(s.长度!=1){
让keyCode=e.keyCode;//e.keyCode在Android上总是229;
如果(键代码==229)
s=(e.target.value).split(“”).pop();
}
如果((s.length!=0)和((s.toUpperCase()==s)和(!isShiftOn)
返回true;
返回false;
}
span{
显示:块;
背景:红色;
}
没错{
背景:绿色;
}
输入:

它应该以同样的方式工作。你使用什么浏览器/版本?@ThomasSablik:我已经在Android Chrome浏览器v89.0.4389.0上检查过了。说它应该从Chrome48开始工作。@ThomasSablik:没错,即使我检查过了,但它的表现还是不符合预期@正如我在你评论的要点上所说的,每个软件键盘对待听众都是不同的。根据所使用的软件键盘,您可能会注意到事件没有正确触发。您使用的是哪个软键盘?谢谢您的回复,但当我们只按Shift+任何其他字符时,这也会触发绿色输出!