| <!DOCTYPE html> |
| <html> |
| <head> |
| <title id='desc'> MutationEvent.relatedNode for DOMNodeInserted and DOMNodeRemoved </title> |
| <script type="text/javascript"> |
| var PassTest = function() |
| { |
| document.getElementById("testresult").firstChild.data = "PASS"; |
| } |
| |
| var FailTest = function() |
| { |
| document.getElementById("testresult").firstChild.data = "FAIL"; |
| } |
| |
| var EVENT1 = "DOMNodeInserted"; |
| var EVENT2 = "DOMNodeRemoved"; |
| var TARGET; |
| var PARENT; |
| var NODE; |
| var ActualResult = []; |
| var ExpectResult = []; |
| |
| window.onload = function() |
| { |
| try |
| { |
| TARGET = document.getElementById("target"); |
| PARENT = document.getElementById("parent"); |
| TARGET.addEventListener(EVENT1, TestEvent, true); |
| TARGET.addEventListener(EVENT2, TestEvent, true); |
| |
| ExpectResult = [TARGET, PARENT]; |
| |
| NODE = document.createElement("INPUT"); |
| TARGET.appendChild(NODE); |
| PARENT.removeChild(TARGET); |
| } |
| catch(ex) |
| { |
| FailTest(); |
| } |
| } |
| |
| function TestEvent(evt) |
| { |
| ActualResult.push(evt.relatedNode); |
| |
| if (ExpectResult.toString() == ActualResult.toString()) |
| { |
| PassTest(); |
| } |
| |
| if (2 < ActualResult.length) |
| { |
| FailTest(); |
| } |
| } |
| </script> |
| </head> |
| <body> |
| <h3>DOM Events</h3> |
| <h4> |
| Test Description: MutationEvent.relatedNode is the parent node of the node being removed for DOMNodeRemoved event; |
| and, it is the parent node of the node that has been inserted for DOMNodeInserted event |
| </h4> |
| |
| <span id="parent"> |
| <div id="target" style="border:solid 1px green; width:200px; height:50px"> |
| </div> |
| </span> |
| <p>Test passes if the word "PASS" appears below.</p> |
| <div>Test result: </div> |
| <div id='testresult'>FAIL</div> |
| </body> |
| </html> |