| <!DOCTYPE html> |
| <html> |
| <body> |
| <p id="description">This tests copying and pasting a p element into another p element doesn't end up in a nested p elements.</p> |
| <div id="editor" style="border: 1px solid black;" contenteditable> |
| <p style="font-size: 12px; color: blue;"><span id="source">Copy this line</span></p> |
| <p style="font-size: 12px;"><strong>Paste it below in the empty line below. The font size should be 12px and the text should be in blue.</strong></p> |
| <p style="font-size: 12px; color: blue;"><br></p> |
| </div> |
| <script src="../../resources/dump-as-markup.js"></script> |
| <script> |
| |
| var source = document.getElementById('source'); |
| getSelection().collapse(source, 0); |
| getSelection().modify('extend', 'forward', 'lineboundary'); |
| getSelection().modify('extend', 'forward', 'character'); |
| |
| function serializeAndParseInnerHTML() { |
| var editor = document.getElementById('editor'); |
| editor.innerHTML = editor.innerHTML; |
| } |
| |
| if (document.queryCommandEnabled('copy')) { |
| Markup.description(document.getElementById('description').textContent); |
| |
| document.execCommand('Copy', false, null); |
| getSelection().collapse(document.querySelector('br').parentNode, 0); |
| document.execCommand('Paste', false, null); |
| |
| Markup.dump('editor', 'After paste'); |
| |
| serializeAndParseInnerHTML(); |
| |
| Markup.dump('editor', 'After innerHTML = innerHTML'); |
| } else { |
| document.onpaste = function () { setTimeout(serializeAndParseInnerHTML); } |
| Markup.noAutoDump(); |
| } |
| |
| </script> |
| </body> |
| </html> |