防止默认事件操作不起作用......?

Nie*_*sol 8 javascript events internet-explorer javascript-events

我正在尝试在我的网站上添加键盘快捷键,以便使用键盘实现快速导航.但是,我尝试使用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;
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,覆盖F5键的默认操作可以正常工作 - 只有在没有iframe处于活动状态时,浏览器才会重新加载页面.我不太清楚如何在按下Alt + X时阻止显示菜单.

Kev*_*ker 3

实际上,我有一个网络应用程序可以使用 CTRL 快捷键正常工作,但后来我决定聪明地使用该accesskey属性,并在 IE 中遇到了这个问题。

使用 CTRL 快捷键的问题在于,其中许多快捷键在许多应用程序中更加标准/有用(例如:剪切、复制、粘贴、全选)。

Ctrl+Alt 相当安全,但需要用户做更多工作。

我倾向于只是尝试坚持使用 ALT 快捷键,IE 不会固执地坚持处理。

CTRL + A/CTRL + F 取消成功演示: http://jsfiddle.net/egJyT/

这个答案似乎意味着如果不将 IE 置于 kiosk 模式,就不可能禁用菜单快捷方式。