Element: outerHTML-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Das outerHTML
-Attribut der Element
DOM-Schnittstelle erhält das serialisierte HTML-Fragment, das das Element einschließlich seiner Nachkommen beschreibt. Es kann auch gesetzt werden, um das Element mit aus dem angegebenen String geparsten Knoten zu ersetzen.
Um nur die HTML-Darstellung der Inhalte eines Elements zu erhalten oder die Inhalte eines Elements zu ersetzen, verwenden Sie stattdessen die innerHTML
-Eigenschaft.
Beachten Sie, dass einige Browser die Zeichen <
und >
als <
und >
serialisieren, wenn sie in Attributwerten auftreten (siehe Browser-Kompatibilität). Dies dient dazu, eine potenzielle Sicherheitslücke zu verhindern (mutation XSS), bei der ein Angreifer eine Eingabe erstellen kann, die eine Sanisierungsfunktion umgeht und so einen Cross-Site-Scripting (XSS) Angriff ermöglicht.
Wert
Das Lesen des Wertes von outerHTML
gibt einen String zurück, der eine HTML-Serialisierung des element
und seiner Nachkommen enthält. Das Setzen des Wertes von outerHTML
ersetzt das Element und alle seine Nachkommen mit einem neuen DOM-Baum, der durch das Parsen des angegebenen htmlString
konstruiert wurde.
Wenn auf den Wert null
gesetzt, wird dieser null
Wert in den leeren String (""
) umgewandelt, sodass elt.outerHTML = null
dem entspricht elt.outerHTML = ""
.
Ausnahmen
SyntaxError
DOMException
-
Wird ausgelöst, wenn versucht wird,
outerHTML
mit einem HTML-String zu setzen, der nicht gültig ist. NoModificationAllowedError
DOMException
-
Wird ausgelöst, wenn versucht wird,
outerHTML
auf einem Element zu setzen, das ein direkter Nachkomme einesDocument
ist, wie zum BeispielDocument.documentElement
.
Beispiele
Den Wert der outerHTML-Eigenschaft eines Elements abrufen
HTML
<div id="d"> <p>Content</p> <p>Further Elaborated</p> </div>
JavaScript
const d = document.getElementById("d"); console.log(d.outerHTML); // The string '<div id="d"><p>Content</p><p>Further Elaborated</p></div>' // is written to the console window
Ersetzen eines Knotens durch Setzen der outerHTML-Eigenschaft
HTML
<div id="container"> <div id="d">This is a div.</div> </div>
JavaScript
const container = document.getElementById("container"); const d = document.getElementById("d"); console.log(container.firstElementChild.nodeName); // logs "DIV" d.outerHTML = "<p>This paragraph replaced the original div.</p>"; console.log(container.firstElementChild.nodeName); // logs "P" // The #d div is no longer part of the document tree, // the new paragraph replaced it.
Hinweise
Wenn das Element keinen Elternknoten hat, ändert das Setzen seiner outerHTML
-Eigenschaft weder das Element noch seine Nachkommen. Zum Beispiel:
const div = document.createElement("div"); div.outerHTML = '<div class="test">test</div>'; console.log(div.outerHTML); // output: "<div></div>"
Zudem wird das Element zwar im Dokument ersetzt, aber die Variable, deren outerHTML
-Eigenschaft gesetzt wurde, hält weiterhin den Verweis auf das ursprüngliche Element:
const p = document.querySelector("p"); console.log(p.nodeName); // shows: "P" p.outerHTML = "<div>This div replaced a paragraph.</div>"; console.log(p.nodeName); // still "P";
Der zurückgegebene Wert wird Eigenschaften mit HTML-Escapes enthalten:
const anc = document.createElement("a"); anc.href = "https://developer.mozilla.org?a=b&c=d"; console.log(anc.outerHTML); // output: "<a href='https://developer.mozilla.org?a=b&c=d'></a>"
Spezifikationen
Specification |
---|
HTML # dom-element-outerhtml |
Browser-Kompatibilität
Siehe auch
- Serialisieren von DOM-Bäumen in XML-Strings:
XMLSerializer
- Parsen von XML oder HTML in DOM-Bäume:
DOMParser
HTMLElement.outerText