Document: customElementRegistry property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

The customElementRegistry read-only property of the Document interface returns the CustomElementRegistry object associated with this document, or null if one has not been set.

For documents associated with a Window (such as the main document of a page), this is the global CustomElementRegistry that is also accessible through the window.customElements property. Documents created programmatically (for example, via DOMImplementation.createHTMLDocument()) have a null custom element registry by default.

This property is also available on ShadowRoot objects via the same customElementRegistry property name.

Value

A CustomElementRegistry object, or null.

Examples

Accessing a document's custom element registry

This example shows that the main document's customElementRegistry is the same global registry available through window.customElements, while documents created programmatically via DOMImplementation.createHTMLDocument() have a null registry by default.

js
// The main document's registry is the global one:
console.log(document.customElementRegistry === window.customElements); // true (for Window-associated documents)

// Documents created programmatically have a null registry:
const newDoc = document.implementation.createHTMLDocument("New document");
console.log(newDoc.customElementRegistry); // null

Specifications

Specification
DOM
# dom-documentorshadowroot-customelementregistry

Browser compatibility

See also