This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The DOMImplementation.createDocumentType() method returns a DocumentType object which can either be used with DOMImplementation.createDocument upon document creation or can be put into the document via methods like Node.insertBefore() or Node.replaceChild().
createDocumentType(name, publicId, systemId)
nameA string containing the name of the doctype, like html. Corresponds to the DocumentType.name property.
publicIdA string containing the PUBLIC identifier. Corresponds to the DocumentType.publicId property.
systemIdA string containing the SYSTEM identifiers. Corresponds to the DocumentType.systemId property.
A DocumentType.
const dt = document.implementation.createDocumentType( "svg", "-//W3C//DTD SVG 1.1//EN", "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd", ); const d = document.implementation.createDocument( "http://www.w3.org/2000/svg", "svg:svg", dt, ); console.log(d.doctype.publicId); // -//W3C//DTD SVG 1.1//EN
| Specification |
|---|
| DOM> # ref-for-dom-domimplementation-createdocumenttype①> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
createDocumentType |
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/createDocumentType