A while back I was trying to figure out how to make F1 bring up a custom help window in our web application ActiveFocus. It is easy enough to trap a keypress and open a window showing the help, but to my frustration, after popping up the new window, the built in Internet Explorer help window popped up too!
I tried various variations of cancelling the kepress event, but nothing seems to work. This is for instance how I cancel Ctrl+F (which normally pops up IEs built in Find dialog, but I wanted it to show a custom search dialog instead) :
<script type="text/javascript">function onKeyDownH(e){ e = window.event; var ctrl = (e.ctrlKey) ? true : false; if (ctrl == true ) { if ( e.keyCode == 70) { e.returnValue = false; e.keyCode = 0; ShowSearchPage(); } }}function onloadH(e){ document.onkeydown = onKeyDownH; return true;}window.onload = onloadH;</script>
This cancelling approach by the way does work for other keypresses, just not F1, which has some kind of special internal handing. After much head scratching I finally stumbled across this simple solution:
<body onhelp="ShowHelp(); return false;">
Here, ShowHelp does the actual showing of the help window.
Simple, huh? If anyone knows how to make this cross browser compatible I am all ears!
Copyright © 2003-2010 Falafel Software Inc.
The opinions expressed herein are Falafel's employees own personal opinions and do not represent Falafel Software's view in any way in case they go bananas!