| <script type="text/javascript"> |
| document.body.appendChild(document.createTextNode(msg + '\n')); |
| var listener = function(e) { |
| var el = document.getElementById('cont'); |
| if (el.firstElementChild && el.lastElementChild != el.firstElementChild) { |
| el.lastElementChild.appendChild(el.firstElementChild); |
| el.lastElementChild && el.removeChild(el.lastElementChild); |
| if (e.target.firstChild && e.target.firstChild.className == 'Apple-style-span') |
| e.target.firstChild.innerHTML = e.target.firstChild.innerHTML.split(' ')[0]; |
| document.addEventListener("DOMSubtreeModified", listener); |
| var el = document.getElementById('cont'); |
| window.getSelection().setBaseAndExtent(document.getElementById('start'), 0, document.getElementById('end'), 0); |
| var str = '<span class="Apple-style-span" style="color: red;"><span>styled</span> <span>content</span></span>'; |
| document.execCommand("InsertHTML", false, str); |
| document.removeEventListener("DOMSubtreeModified", listener); |
| <body onload="runTests();"> |
| <div id="cont" contenteditable="true"> |
| <span>This <span id="start">tests</span></span> |
| <span>that we don't crash when <code id="end">mutating</code> the dom</span> |
| <span>during execution of an InsertHTML command.</span> |