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

Limited availability

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

Der CustomElementRegistry() Konstruktor erzeugt ein neues CustomElementRegistry-Objekt für die eingeschränkte Nutzung.

Der Konstruktor wird speziell verwendet, um eingeschränkte Registrierungen zu erstellen, die benutzerdefinierte Elemente auf einen bestimmten Bereich beschränken, wie z.B. ein Element oder ein ShadowRoot.

Hinweis: Das globale CustomElementRegistry-Objekt, das mit einem Window verbunden ist, wird nicht mit diesem Konstruktor erstellt; es wird automatisch erstellt, wenn das Fenster eingerichtet wird und ist über die window.customElements-Eigenschaft zugänglich.

Syntax

js
new CustomElementRegistry()

Parameter

Keine.

Rückgabewert

Ein neues CustomElementRegistry-Objekt.

Beschreibung

Wenn Sie ein CustomElementRegistry mit new CustomElementRegistry() konstruieren, wird das resultierende Register als eingeschränkt betrachtet. Das bedeutet:

  • Benutzerdefinierte Elementdefinitionen, die mit define() hinzugefügt werden, sind nicht global verfügbar. Sie gelten nur für Knoten, die diesem Register zugeordnet wurden.
  • Es unterstützt nicht die extends-Option in define() (zum Erstellen angepasster eingebauter Elemente). Der Versuch, extends mit einem eingeschränkten Register zu verwenden, löst einen NotSupportedError DOMException aus.

Um ein eingeschränktes Register mit einem DOM-Teilbaum zu verknüpfen, können Sie die Methode initialize() verwenden, es an Element.attachShadow() übergeben oder die customElementRegistry-Option der Methode Document.createElement() verwenden.

Beispiele

Erstellen eines eingeschränkten benutzerdefinierten Elementregisters

Dieses Beispiel erstellt ein eingeschränktes Register, definiert ein benutzerdefiniertes Element darauf und übergibt das Register an Element.attachShadow(). Wenn HTML, das <my-element> enthält, dem Shadow Root hinzugefügt wird, wird das Element mithilfe der Definition des eingeschränkten Registers 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

Specification
HTML
# dom-customelementregistry

Browser-Kompatibilität

Siehe auch