Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CustomElementRegistry: CustomElementRegistry()-Konstruktor

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Der CustomElementRegistry()-Konstruktor erstellt ein neues CustomElementRegistry-Objekt zur bereichsbezogenen Verwendung.

Der Konstruktor wird speziell zum Erstellen bereichsbezogener Registrierungen benutzerdefinierter Elemente verwendet, die Definitionen von benutzerdefinierten Elementen auf einen bestimmten Bereich beschränken, beispielsweise ein Element oder einen ShadowRoot.

Hinweis: Das globale CustomElementRegistry-Objekt, das einem Window zugeordnet ist, wird nicht mit diesem Konstruktor erstellt; es wird beim Einrichten des Fensters automatisch erstellt und ist über die Eigenschaft window.customElements zugänglich.

Syntax

js
new CustomElementRegistry()

Parameter

Keine.

Rückgabewert

Ein neues CustomElementRegistry-Objekt.

Beschreibung

Wenn Sie eine CustomElementRegistry mit new CustomElementRegistry() erstellen, wird die resultierende Registrierung als bereichsbezogen betrachtet. Das bedeutet:

  • Definitionen benutzerdefinierter Elemente, die mit define() hinzugefügt werden, sind nicht global verfügbar. Sie gelten nur für Knoten, die dieser Registrierung zugeordnet wurden.
  • Sie unterstützt die Option extends in define() nicht (zum Erstellen angepasster integrierter Elemente). Der Versuch, extends mit einer bereichsbezogenen Registrierung zu verwenden, löst eine NotSupportedError-DOMException aus.

Um eine bereichsbezogene Registrierung mit einem DOM-Teilbaum zu verknüpfen, können Sie die Methode initialize() verwenden, sie an Element.attachShadow() übergeben oder die Option customElementRegistry der Methode Document.createElement() verwenden.

Beispiele

Erstellen einer bereichsbezogenen Registrierung benutzerdefinierter Elemente

Dieses Beispiel erstellt eine bereichsbezogene Registrierung, definiert darin ein benutzerdefiniertes Element und übergibt die Registrierung an Element.attachShadow(). Wenn HTML mit <my-element> zum Shadow Root hinzugefügt wird, wird das Element mithilfe der Definition der bereichsbezogenen Registrierung aktualisiert.

js
const myRegistry = new CustomElementRegistry();

myRegistry.define(
  "my-element",
  class extends HTMLElement {
    connectedCallback() {
      this.textContent = "Hello from scoped registry!";
    }
  },
);

const host = document.createElement("div");
document.body.appendChild(host);
const shadow = host.attachShadow({
  mode: "open",
  customElementRegistry: myRegistry,
});
shadow.innerHTML = "<my-element></my-element>";

console.log(shadow.querySelector("my-element").textContent);
// "Hello from scoped registry!"

Spezifikationen

Spezifikation
HTML
# dom-customelementregistry

Browser-Kompatibilität

Siehe auch