 <p>Have you tried <code>keyCode == 82</code>, not <code>114</code>? <a href="http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes" rel="nofollow">Key codes</a> are not the same as ASCII/charCodes, so there's no upper/lower case consideration.</p> <p>This worked for me (well, technically I used it with a JQuery keydown handler, not <code>document.onkeypress</code>):</p> <pre><code>document.onkeypress = function(e){ if ((e.ctrlKey || e.metaKey) &amp;&amp; e.keyCode == 82) // Ctrl-R e.preventDefault(); } </code></pre> <p>And for all those crying "bad design" - I'm building a terminal emulator and want CTRL-R to match the Bash CTRL-R to search history, not refresh the page. There are always use cases.</p>