如何使用JavaScript在页面加载时(即不在按键上)检测Caps Lock状态?

5 javascript forms capslock

因此,我一直在研究使用JavaScript / jQuery的表单大写锁定检测解决方案。stackoverflow上有一条巨大的线程可提供许多解决方案。但是唯一的问题是他们不检查是否直接按下了Caps Lock。它们检测是否输入了大写字母,并且没有按下Shift键。这样做的缺点是,在用户开始输入表单之前,我的Caps Lock警告消息不会打开/关闭,这几乎不是最佳选择。这是我的代码。

document.onkeypress = function(e){
    e = e || window.event;
    var s = String.fromCharCode(e.keyCode || e.which);
    if (s.toUpperCase() === s && !e shiftKey) {
        capsWarning.style.visibility = 'visible';
    } else {
        capsWarning.style.visibility = 'hidden';
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法,当我按下Caps Lock键时,可以使用JavaScript触发Caps Lock消息?就是说,在我开始输入文字之前,不要延迟切换消息吗?

最好是我更喜欢纯JavaScript解决方案而不是JQuery。尽管如果您认为jQuery在这里真的会非常好,请说为什么,我可以向我的同事施加压力,让我在这里包括它; o

Ken*_*ney -4

使用onkeydown处理程序:

document.onkeypress=function(){console.log(arguments);}
Run Code Online (Sandbox Code Playgroud)