| <!DOCTYPE HTML> |
| <meta charset=utf-8> |
| <title>MutationObservers: innerHTML, outerHTML mutations</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="mutationobservers.js"></script> |
| <h1>MutationObservers: innerHTML, outerHTML mutations</h1> |
| <div id="log"></div> |
| |
| <section style="display: none"> |
| |
| <p id='n00'>old text</p> |
| |
| <p id='n01'>old text</p> |
| |
| <div id='n02'><p>old text</p></div> |
| </section> |
| |
| <script> |
| var n00; |
| var n00oldText; |
| var n01; |
| var n01oldText; |
| var n02; |
| |
| setup(function() { |
| n00 = document.getElementById('n00'); |
| n00oldText = n00.firstChild; |
| n01 = document.getElementById('n01'); |
| n01oldText = n01.firstChild; |
| n02 = document.getElementById('n02'); |
| }) |
| |
| runMutationTest(n00, |
| {childList:true,attributes:true}, |
| [{type: "childList", |
| removedNodes: [n00oldText], |
| addedNodes: function() { |
| return [document.getElementById("n00").firstChild]; |
| }}, |
| {type: "attributes", attributeName: "class"}], |
| function() { n00.innerHTML = "new text"; n00.className = "c01"}, |
| "innerHTML mutation"); |
| |
| runMutationTest(n01, |
| {childList:true}, |
| [{type: "childList", |
| removedNodes: [n01oldText], |
| addedNodes: function() { |
| return [document.getElementById("n01").firstChild, |
| document.getElementById("n01").lastChild]; |
| }}], |
| function() { n01.innerHTML = "<span>new</span><span>text</span>"; }, |
| "innerHTML with 2 children mutation"); |
| |
| runMutationTest(n02, |
| {childList:true}, |
| [{type: "childList", |
| removedNodes: [n02.firstChild], |
| addedNodes: function() { |
| return [n02.firstChild]; |
| }}], |
| function() { n02.firstChild.outerHTML = "<p>next text</p>"; }, |
| "outerHTML mutation"); |
| </script> |