Document-importNode.html (3015B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>Document.importNode</title> 4 <link rel=help href="https://dom.spec.whatwg.org/#dom-document-importnode"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <div id="log"></div> 8 <script> 9 test(function() { 10 var doc = document.implementation.createHTMLDocument("Title"); 11 var div = doc.body.appendChild(doc.createElement("div")); 12 div.appendChild(doc.createElement("span")); 13 assert_equals(div.ownerDocument, doc); 14 assert_equals(div.firstChild.ownerDocument, doc); 15 var newDiv = document.importNode(div); 16 assert_equals(div.ownerDocument, doc); 17 assert_equals(div.firstChild.ownerDocument, doc); 18 assert_equals(newDiv.ownerDocument, document); 19 assert_equals(newDiv.firstChild, null); 20 }, "No 'deep' argument.") 21 test(function() { 22 var doc = document.implementation.createHTMLDocument("Title"); 23 var div = doc.body.appendChild(doc.createElement("div")); 24 div.appendChild(doc.createElement("span")); 25 assert_equals(div.ownerDocument, doc); 26 assert_equals(div.firstChild.ownerDocument, doc); 27 var newDiv = document.importNode(div, undefined); 28 assert_equals(div.ownerDocument, doc); 29 assert_equals(div.firstChild.ownerDocument, doc); 30 assert_equals(newDiv.ownerDocument, document); 31 assert_equals(newDiv.firstChild, null); 32 }, "Undefined 'deep' argument.") 33 test(function() { 34 var doc = document.implementation.createHTMLDocument("Title"); 35 var div = doc.body.appendChild(doc.createElement("div")); 36 div.appendChild(doc.createElement("span")); 37 assert_equals(div.ownerDocument, doc); 38 assert_equals(div.firstChild.ownerDocument, doc); 39 var newDiv = document.importNode(div, true); 40 assert_equals(div.ownerDocument, doc); 41 assert_equals(div.firstChild.ownerDocument, doc); 42 assert_equals(newDiv.ownerDocument, document); 43 assert_equals(newDiv.firstChild.ownerDocument, document); 44 }, "True 'deep' argument.") 45 test(function() { 46 var doc = document.implementation.createHTMLDocument("Title"); 47 var div = doc.body.appendChild(doc.createElement("div")); 48 div.appendChild(doc.createElement("span")); 49 assert_equals(div.ownerDocument, doc); 50 assert_equals(div.firstChild.ownerDocument, doc); 51 var newDiv = document.importNode(div, false); 52 assert_equals(div.ownerDocument, doc); 53 assert_equals(div.firstChild.ownerDocument, doc); 54 assert_equals(newDiv.ownerDocument, document); 55 assert_equals(newDiv.firstChild, null); 56 }, "False 'deep' argument.") 57 58 test(function() { 59 let doc = document.implementation.createHTMLDocument("Title"); 60 doc.body.setAttributeNS("http://example.com/", "p:name", "value"); 61 let originalAttr = doc.body.getAttributeNodeNS("http://example.com/", "name"); 62 let imported = document.importNode(originalAttr, true); 63 assert_equals(imported.prefix, originalAttr.prefix); 64 assert_equals(imported.namespaceURI, originalAttr.namespaceURI); 65 assert_equals(imported.localName, originalAttr.localName); 66 }, "Import an Attr node with namespace/prefix correctly."); 67 </script>