浏览器监听多个键向下js

时间:2017-03-10 17:35:09

标签: javascript jquery html keyboard keypress

我正在尝试按特定键时发生事件。

我正在尝试收听的密钥为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>

为什么我不能同时看到这些特定键?

有没有办法同时听取所有这些内容?

1 个答案:

答案 0 :(得分:1)

您需要找到一种不同的方法。在大多数(便宜的)键盘上有一个可以按下的最大数字键。同时举行 。此最大值取决于键盘硬件,协议和连接器类型。

通过了解n-key rollover (NKRO)与矩阵(通常是双键翻转)键盘,您可以获得有关详细信息的信息。最好的键盘将支持NKRO与PS / 2接口(USB有限) - related answer

根据设备的不同,触摸似乎也有限制 - basic (1-11)&amp; large devices (50)