1

我正在尝试为我的应用程序实现键盘快捷键。我想使用 ALT + Q 组合。但是,当我尝试运行代码并按 ALT 键时,它会将焦点设置在浏览器菜单栏控件上并且失败。

我试图通过几种方法停止事件传播,例如,

function KeyDownEventHandler() {
    if (event.keyCode == 18) {
       //stop code 
    }
}

stopPropagation(event);
CancleBubbling();
return false;
event.preventDefault();

它仍然表现得很好。
编辑 -实际上问题不在于检测。当用户按下 ALT 键并释放它并按下 Q 键后,它会突出显示浏览器菜单。它不调用自定义快捷方式的函数。

这是浏览器的默认行为吗?我们可以覆盖它吗?

请帮忙。
谢谢

4

1 回答 1

0

更新

这是一个准确检测“ALT + Q”序列的小提琴:

document.onkeydown = KeyCheck;
var previousKeyCode = 0;
function KeyCheck(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    switch (KeyID)
    {
        case 18:
            previousKeyCode = 18;
            break;
        case 81:
            if (previousKeyCode == 18) {
                alert("ALT+Q Pressed!!!")
            }
            previousKeyCode=KeyID;
            break;
       default: previousKeyCode=KeyID;
    }
}
于 2013-07-25T11:49:08.537 回答