This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The DOMImplementation.createDocument() method creates and returns an XMLDocument.
createDocument(namespaceURI, qualifiedName) createDocument(namespaceURI, qualifiedName, documentType)
namespaceURIA string containing the namespace URI of the document to be created, or null if the document doesn't belong to one.
qualifiedNameA string containing the qualified name, that is an optional prefix and colon plus the local root element name, of the document to be created. A null value is treated the same as the empty string ("").
documentType OptionalIs the DocumentType of the document to be created. It defaults to null.
The newly-created XMLDocument.
const doc = document.implementation.createDocument(
"http://www.w3.org/1999/xhtml",
"html",
null,
);
const body = document.createElementNS("http://www.w3.org/1999/xhtml", "body");
body.setAttribute("id", "abc");
doc.documentElement.appendChild(body);
alert(doc.getElementById("abc")); // [object HTMLBodyElement]
| Specification |
|---|
| DOM> # ref-for-dom-domimplementation-createdocument②> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
createDocument |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
DOMImplementation interface it belongs to.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument