Internet Explorer或任何浏览器F1按键显示您自己的帮助

Dor*_*eka 11 javascript internet-explorer

我想在按F1时显示用户选择的帮助文件.这应该适用于我测试我的应用程序的每个浏览器.如何停止显示默认帮助文件?

And*_*y E 16

AFAIK,F1键的默认动作可以在IE以外的任何浏览器中更改.微软团队通常会在他们的应用程序中保持一致的用户体验,这就是为什么F1打开帮助而不管返回错误.话虽如此,有一个window.onhelp事件形式的解决方法.

// Internet Explorer
if ("onhelp" in window)
    window.onhelp = function () { 
        showMyHelpInsteadOfTheUsualDefaultHelpWindow(true); 
        return false;
    }
// Others
else {
    document.onkeydown = function(evt) {
        cancelKeypress = (evt.keyCode == 112);
        if (cancelKeypress) {  // F1 was pressed
            showMyHelpInsteadOfTheUsualDefaultHelpWindow(true);
            return false;
        }
    }

    // Additional step required for Opera
    document.onkeypress = function(evt) {
        if (cancelKeypress) 
            return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

"其他"步骤改编自删除的答案,该答案改编自另一个答案,而另一个答案又从另一个答案改编而来.