<body onload="setup()"> <p>cmd+b and cmd+i should generate a keydown event in contentEditable fields. Also, calling preventDefault() in the keydown event should cancel the text styling.</p> <div contentEditable id="test" style="border: 1px solid; padding: 4px;"> This is some sample text.<br><br><br><br> </div> <div> <input type="checkbox" id="disable"><label for="disable">preventDefault() in keydown</label> </div> <div id="log"></div> <script> function setup() { var test = document.getElementById("test"); test.addEventListener("keydown", keydown, false); var selection = window.getSelection(); selection.setPosition(test, 0); selection.modify("extend", "forward", "sentence"); test.focus(); } function log(msg) { var log = document.getElementById("log"); log.innerHTML += "<br>" + msg; } function keydown(event) { log("keydown"); if (document.getElementById("disable").checked) event.preventDefault(); } </script> </body>