“Keymaster是一个简单的微型库,用于在Web应用程序中定义和分派键盘快捷键。”
有多种方法可以进行多键键盘组合。例如,在Gmail中,按 g 后紧跟 i 会将您带到收件箱。如果keymasterjs不支持,那么有一种雄辩的方法(我可能会分叉keymaster并添加此功能)。
Keymaster没有依赖关系。我希望保持这种状态......谢谢!
答案 0 :(得分:2)
我不知道keymaster,但你可以通过keypress事件处理程序中的计时器(setTimeout)轻松完成。而不是立即按键操作,将密钥添加到缓冲区,并等待第二个密钥,直到超时到期。
在代码中,这将是这样的:
var keyBuffer = [],
timer;
document.addEventListener('keypress', function(e) {
// Add current key to buffer
keyBuffer.push(e.which);
// Cancel previous timer
clearTimeout(timer);
// Set new timer
timer = setTimeout(function() {
// Pass a *copy* of the buffer into another function
reactOnKey(keyBuffer.slice(0));
// Clear buffer
keyBuffer.length = 0;
}, 1000)
}, false);
function reactOnKey(buffer) {
console.log(buffer);
}