如何捕获Windows资源管理器等键盘输入

时间:2017-11-12 05:43:05

标签: javascript jquery html keyboard-events

我有自定义下拉列表选择并捕获keydown事件,该事件会触发键盘上按下的每个输入的事件。

document.addEventListener('keydown', (event) => {
  const keyName = event.key;
  console.log('keydown event\n\n' + 'key: ' + keyName);
}); 

enter image description here

按“t”和“w”会触发事件两个连续事件。但我需要捕获“tw”作为我的搜索词然后在下拉列表中突出显示它。 (要么) 我需要捕获连续按下的所有按键。

我在Windows资源管理器中寻找能够快速按下“d”& “e”突出显示“开发工具”。

enter image description here

如何在适当的超时时间内在JavaScript中捕获这些内容?

1 个答案:

答案 0 :(得分:1)

也许是这样的:

let pressed = [];
let timeoutId;

document.addEventListener('keypress', e => {
  pressed.push(e.key);

  if (timeoutId) {
    clearTimeout(timeoutId);
  }

  timeoutId = setTimeout(() => {
    console.log(pressed.join(''));
    pressed = [];
  }, 400); //300-400ms timeout is optimal
});