DocumentType: before() method

Baseline
Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

The before() method of the DocumentType interface inserts a set of Node objects or strings in the children list of this DocumentType's parent, just before this DocumentType. Strings are inserted as equivalent Text nodes. Nothing happens if parentNode is null.

Syntax

js
before(param1)
before(param1, param2)
before(param1, param2, /* …, */ paramN)

Parameters

param1, …, paramN

A set of Node objects or strings to insert.

Return value

None (undefined).

Exceptions

HierarchyRequestError DOMException

Thrown when the node cannot be inserted at the specified point in the hierarchy.

Examples

Adding a conditional comment

Comment nodes are valid before doctype declarations but not advisable given they trigger quirks mode in IE. A conditional comment works for IE as well, though:

js
const docType = document.implementation.createDocumentType("html", "", "");
const myDoc = document.implementation.createDocument("", "", docType);

docType.before(
  document.createComment("<!--[if !IE]> conditional comment <![endif]-->"),
);

myDoc.childNodes;
// NodeList [<!--[if !IE]> conditional comment <![endif]-->, <!DOCTYPE html>]

Specifications

Specification
DOM
# ref-for-dom-childnode-before①

Browser compatibility

See also