在javascript中检测键盘错误

时间:2015-03-02 23:32:49

标签: javascript keyboard-events event-listener beep

我正在编写一个脚本,要求用户同时按下多个键。我跟踪使用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
}

1 个答案:

答案 0 :(得分:0)

不,这可能是不可能的。

您所描述的大多数限制都可能是键盘硬件本身的限制 - 大多数键盘不支持n-key rollover,因此它们无法正确检测到同时按下的多个键。在硬件级别没有通知,因此无法将其传播到网页。

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