某些keydown事件组合是否相互阻塞?

时间:2014-01-13 13:22:10

标签: javascript events key

我有一个关于JavaScript的初学者问题:在一个小的测试脚本中,我观察到一些关键事件似乎在其他人已被触发时不会触发。换句话说:如果某些键已关闭,则大多数其他keydown事件都会被阻止。例如,按住键a,s,d,f,g不会触发g的keydown事件。但是,如果我持有,例如h和j也是如此,他们的keydown事件是按预期触发的。

对于此测试,我在Windows 7 Home Edition 64-Bit上使用了Mozilla Firefox 26.0。

这是包含的JavaScript文件,用于将keydown-type的键事件映射输出到id为"testout001"的某个div元素:

var keyMap = [];

function keyMapToHTML(arr){
    var i = 0;
    var temp = "";
    while(i<arr.length){
        if(arr[i]){
            temp += i + "<br>";
        }
        i++;
    }
    return temp;
}

function keyHandler(e){
    e = e || event; // deal with IE
    keyMap[e.keyCode] = (e.type == 'keydown');
    document.getElementById("testout001").innerHTML = keyMapToHTML(keyMap);
}

  1. 首先:这是一个错误吗?
  2. 为什么某些keydown组合工作而其他组合不工作?
  3. 是否有限制(很可能是浏览器特定的)可以同时按住/按下多少个键?
  4. 提前感谢您的建议!

1 个答案:

答案 0 :(得分:1)

这是大多数键盘的常见硬件问题。某些按键无法同时被检测到。