<html> <body> <p>Typing in the input fields below should not generate text, even with an IME enabled.</p> Type into the input: <input type=text id='input'></input><br> <div id='out' style="float: right"></div> Or the text area: <textarea id='area'></textarea><br> Or the contentEditable area: <div contentEditable id='ce' style="border:1px solid red; height:300px; width:300px;"></div> <script> var input = document.getElementById('input'); var area = document.getElementById('area'); var ce = document.getElementById('ce'); var handleKeyDown = function(e) { document.getElementById('out').innerHTML += "<br>Got a key event -- cancelling"; e.preventDefault(); } input.addEventListener('keydown', handleKeyDown, false); area.addEventListener('keydown', handleKeyDown, false); ce.addEventListener('keydown', handleKeyDown, false); </script> </body> </html>