正在检测javascript中的键盘错误

Detecting keyboard errors in javascript

本文关键字:键盘 错误 javascript 检测      更新时间:2023-09-26

我正在编写一个脚本,要求用户同时按下多个键。我使用onkeydown和onkeyup事件监听器来跟踪哪些被按下。但是,某些键的组合是不兼容的,通常会导致嘟嘟声,并且不会触发事件侦听器。有什么方法可以检测键盘错误吗?

这是我的一些代码。例如,如果用户按下以下顺序而不释放,计算机将发出错误提示音:T、R、O。不过,"O"不会触发keyDonwFn。

在html代码中,我有onkeydown="keyDownFn(event);"

function keyDownFn(e) {
    if ( isCorrectKey( e.keyCode ) ){
        do A
    }else if (e.keyCode != currentKey){
        do B
    }else if (e.keyCode == currentKey){
        do C
    }
}

如果有错误的话,我想要另一个:

else if (e.keyCode == error){
    do D
}

不,这可能是不可能的。

您所描述的大多数限制可能是键盘硬件本身的限制——大多数键盘不支持n-键翻转,因此它们在物理上无法正确检测同时按下的多个键。硬件级别没有发生这种情况的通知,因此无法将其传播到网页。

也有可能您使用的一些组合键被映射到浏览器中的命令,而这些命令无法被网页捕获。同样,如果发生这种情况,则事件不会传播到网页,因此您无法检测到它。