浏览器监听多个按键按下js

browser listens multiple key down js

我正在尝试在按下特定键时启动事件。

我想听的键是 bltzr,在我的浏览器上我只能按 bltz 而不是最后一个 r

我在 Windows 上试过这个,我在 OSX 上试过,但我仍然听不到所有按键的声音。但是错误是不同的(不能告诉你更多,因为它不是我的设备)

这是我用来监听按键按下的代码:

var log = $('#log')[0],
    pressedKeys = [];

$(document.body).keydown(function (evt) {
    var li = pressedKeys[evt.keyCode];
    if (!li) {
        li = log.appendChild(document.createElement('li'));
        pressedKeys[evt.keyCode] = li;
    }
    $(li).text('Down: ' + evt.keyCode);
    $(li).removeClass('key-up');
});

$(document.body).keyup(function (evt) {
    var li = pressedKeys[evt.keyCode];
    if (!li) {
       li = log.appendChild(document.createElement('li'));
    }
    $(li).text('Up: ' + evt.keyCode);
    $(li).addClass('key-up');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="log">
    <li>List of keys:</li>
</ul>

为什么我不能同时按下这些特定的键?

有没有办法同时收听所有的声音?

您需要寻找其他方法。在大多数(便宜的)键盘上,可以同时 按下并按住的键数有上限。此最大值取决于键盘硬件、协议和连接器类型。

您可以通过了解n-key rollover (NKRO) versus matrix (usually a 2-key rollover) keyboards. The best keyboard will have NKRO support with a PS/2 connector (USB is limited) - related answer来了解具体信息。

触摸似乎也有限制,具体取决于设备 - basic (1-11) & large devices (50)