键盘组合快捷键

时间:2013-08-13 21:08:31

标签: javascript keyboard-shortcuts keymasterjs

Keymaster是一个简单的微型库,用于在Web应用程序中定义和分派键盘快捷键。”

有多种方法可以进行多键键盘组合。例如,在Gmail中,按 g 后紧跟 i 会将您带到收件箱。如果keymasterjs不支持,那么有一种雄辩的方法(我可能会分叉keymaster并添加此功能)。

Keymaster没有依赖关系。我希望保持这种状态......谢谢!

1 个答案:

答案 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);   
}

http://jsfiddle.net/pGdsR/