我正在尝试为我的应用程序实现一个键盘快捷键。我想使用ALT+Q组合。然而,当我尝试运行代码并按下ALT键时,它将焦点设置在浏览器菜单栏控件上,但它失败了。
我试图通过几种方法来阻止事件传播,比如
function KeyDownEventHandler() {
if (event.keyCode == 18) {
//stop code
}
}
stopPropagation(event);
CancleBubbling();
return false;
event.preventDefault();
尽管如此,它的行为还是如此
EDIT-实际上问题不在于检测。当用户按下ALT键并松开它,然后按下Q键时,它会高亮显示浏览器菜单。它不为自定义快捷方式调用函数
这是浏览器的默认行为吗?我们能推翻它吗?
请提供同样的帮助
感谢
更新
这是一个准确检测"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;
}
}