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

View in English Always switch to English

HTMLTemplateElement: content-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨November 2015⁩.

Die content-Eigenschaft des HTMLTemplateElement-Interfaces gibt den Inhalt des <template>-Elements als ein DocumentFragment zurück. Das ownerDocument dieses Inhalts ist ein separates Document von demjenigen, das das <template>-Element selbst enthält — es sei denn, das enthaltende Dokument wurde eigens für den Zweck erstellt, Template-Inhalte zu halten.

Die Methoden Node.cloneNode() und Document.importNode() erstellen beide eine Kopie eines Knotens. Der Unterschied ist, dass importNode() den Knoten im Kontext des aufrufenden Dokuments klont, während cloneNode() das Dokument des zu klonenden Knotens verwendet. Der Dokumentkontext bestimmt das CustomElementRegistry für die Konstruktion von benutzerdefinierten Elementen. Aus diesem Grund sollte document.importNode() verwendet werden, um das content-Fragment zu klonen, damit benutzerdefinierte Element-Nachkommen mithilfe der Definitionen im aktuellen Dokument und nicht dem separaten Dokument, das den Template-Inhalt besitzt, konstruiert werden. Weitere Details finden Sie in den Beispielen auf der Seite zu Node.cloneNode().

Wert

Ein DocumentFragment.

Beispiele

Verwendung von importNode() mit Template-Inhalten

js
const templateElement = document.querySelector("#foo");
const documentFragment = document.importNode(templateElement.content, true);
// Now you can insert the documentFragment into the DOM

Das ownerDocument von Template-Inhalten

Für <template>-Elemente, die im Kontext eines normalen HTML-Dokuments erstellt werden, ist das ownerDocument des content ein separates, neu erstelltes Dokument:

js
const template = document.createElement("template");
console.log(template.content.ownerDocument === document); // false
console.log(template.content.ownerDocument.URL); // "about:blank"

Wenn das <template>-Element im Kontext eines Dokuments erstellt wird, das selbst für den Zweck des Haltens von Template-Inhalten erstellt wurde, dann ist das ownerDocument des content dasselbe wie das des enthaltenden Dokuments:

js
const template1 = document.createElement("template");
const docForTemplate = template1.content.ownerDocument;
const template2 = docForTemplate.createElement("template");
console.log(template2.content.ownerDocument === docForTemplate); // true

Spezifikationen

Specification
HTML
# dom-template-content-dev

Browser-Kompatibilität

Siehe auch