Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Internet Explorer or any Browser F1 keypress displays your own help

I would like to display the user selected help file when pressing F1. This should work on every browser where I test my application. How can I stop the default help file from being displayed?

like image 905
Developer Avatar asked Aug 04 '10 12:08

Developer


1 Answers

AFAIK, the default action of the F1 key can be changed in any browser except for IE. The Microsoft teams are usually sticklers for maintaining a consistent user experience across their applications and that's why F1 opens help regardless of returning false. That being said, there's a workaround in the form of the window.onhelp event.

// 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;
    }
}

"Others" step was adapted from a deleted answer, which was adapted from another answer which, in turn, was adapted from another answer.

like image 61
Andy E Avatar answered Nov 14 '22 20:11

Andy E