我有自定义下拉列表选择并捕获keydown
事件,该事件会触发键盘上按下的每个输入的事件。
document.addEventListener('keydown', (event) => {
const keyName = event.key;
console.log('keydown event\n\n' + 'key: ' + keyName);
});
按“t”和“w”会触发事件两个连续事件。但我需要捕获“tw”作为我的搜索词然后在下拉列表中突出显示它。 (要么) 我需要捕获连续按下的所有按键。
我在Windows资源管理器中寻找能够快速按下“d”& “e”突出显示“开发工具”。
如何在适当的超时时间内在JavaScript中捕获这些内容?
答案 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
});