tony@chromium.org | 22edb9b | 2010-05-19 00:36:46 +0000 | [diff] [blame] | 1 | <body onload="setup()"> |
| 2 | <p>cmd+b and cmd+i should generate a keydown event in contentEditable fields. Also, calling |
| 3 | preventDefault() in the keydown event should cancel the text styling.</p> |
| 4 | |
| 5 | <div contentEditable id="test" style="border: 1px solid; padding: 4px;"> |
| 6 | This is some sample text.<br><br><br><br> |
| 7 | </div> |
| 8 | <div> |
| 9 | <input type="checkbox" id="disable"><label for="disable">preventDefault() in keydown</label> |
| 10 | </div> |
| 11 | <div id="log"></div> |
| 12 | |
| 13 | <script> |
| 14 | function setup() |
| 15 | { |
| 16 | var test = document.getElementById("test"); |
| 17 | test.addEventListener("keydown", keydown, false); |
| 18 | |
| 19 | var selection = window.getSelection(); |
| 20 | selection.setPosition(test, 0); |
| 21 | selection.modify("extend", "forward", "sentence"); |
| 22 | test.focus(); |
| 23 | } |
| 24 | |
| 25 | function log(msg) |
| 26 | { |
| 27 | var log = document.getElementById("log"); |
| 28 | log.innerHTML += "<br>" + msg; |
| 29 | } |
| 30 | |
| 31 | function keydown(event) |
| 32 | { |
| 33 | log("keydown"); |
| 34 | if (document.getElementById("disable").checked) |
| 35 | event.preventDefault(); |
| 36 | } |
| 37 | </script> |
| 38 | </body> |