【发布时间】:2024-05-19 04:30:02
【问题描述】:
我正在尝试在我的网站上添加键盘快捷键,以便使用键盘进行快速导航。但是,我尝试使用 Alt+X 快捷方式时遇到了一个小问题。该事件运行得很好,并按原样返回false,但无论如何都会出现浏览器的文件菜单。我也尝试过preventDefault 方法,但没有任何变化。
脚本的精简版是:
document.documentElement.onkeydown = function(e) {
e = e || window.event;
switch( e.keyCode || e.which) {
// some cases here - most notably:
case 116: // F5 key
if( activeFrame) {
activeFrame.contentWindow.location.reload();
// reloads an iframe if one is active
return false;
}
break;
// more cases...
case 88: // X key
if( e.altKey) {
// do something
return false;
}
}
}
如上所述,覆盖 F5 键的默认操作可以正常工作 - 仅当没有 iframe 处于活动状态时,浏览器才会重新加载页面。我不太明白如何防止按下 Alt+X 时出现菜单。
【问题讨论】:
-
我在 IE9、FF 和 Chrome 中测试了这个。只有 IE 似乎有问题。 jsfiddle.net/rQKUn/5
-
嗯,这至少是一些解脱,但我希望有人能解决这个问题的 IE...
-
此问题是否仅适用于
alt+X,或者也适用于其他菜单快捷方式?如需快速检测 keyCode 的方法,请使用:asquare.net/javascript/tests/KeyCode.html -
Alt+X、Alt+C、Alt+V、Alt+Space,任你选择。
标签: javascript internet-explorer events javascript-events