Dokument: Statische Methode parseHTML()
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.
Die statische Methode parseHTML() des Document-Objekts bietet eine XSS-sichere Möglichkeit, einen HTML-String zu parsen und zu bereinigen, um eine neue Document-Instanz zu erstellen.
Syntax
Document.parseHTML(input)
Document.parseHTML(input, options)
Parameter
input-
Ein String mit HTML, das bereinigt und in die Shadow Root eingefügt werden soll.
optionsOptional-
Ein Optionsobjekt mit dem folgenden optionalen Parameter:
sanitizer-
Ein
Sanitizer- oderSanitizerConfig-Objekt, das festlegt, welche Elemente der Eingabe zugelassen oder entfernt werden, oder der String"default"für die Standardkonfiguration des Sanitizers. Die Methode entfernt alle Elemente und Attribute, die im Hinblick auf XSS unsicher sind, selbst wenn der Sanitizer sie zulässt. Wenn nichts angegeben wird, kommt die Standardkonfiguration vonSanitizerzum Einsatz.Wenn Sie dieselbe Konfiguration mehrfach verwenden, ist es voraussichtlich effizienter, einen
Sanitizerzu verwenden und ihn bei Bedarf anzupassen.
Rückgabewert
Ein Document.
Ausnahmen
TypeError-
Wird ausgelöst, wenn an
options.sanitizereiner der folgenden Werte übergeben wird:- Eine
SanitizerConfig, die nicht gültig ist. Dies gilt beispielsweise für eine Konfiguration, die sowohl Einstellungen für zugelassene als auch für entfernte Elemente enthält. - Ein String, dessen Wert nicht
"default"ist. - Ein Wert, der weder ein
Sanitizernoch eineSanitizerConfignoch ein String ist.
- Eine
Beschreibung
Die Methode parseHTML() parst und bereinigt einen HTML-String, um eine neue, XSS-sichere Document-Instanz zu erstellen.
Das resultierende Document hat den Inhaltstyp „text/html“, den Zeichensatz UTF-8 und die URL „about:blank“.
Wenn im Parameter options.sanitizer kein Sanitizer angegeben ist, verwendet parseHTML() die Standardkonfiguration des Sanitizers.
Diese Konfiguration eignet sich für die meisten Anwendungsfälle, da sie XSS-Angriffe sowie andere Angriffe wie Clickjacking oder Spoofing verhindert.
Sie können einen benutzerdefinierten Sanitizer oder eine benutzerdefinierte SanitizerConfig angeben, um festzulegen, welche Elemente, Attribute und Kommentare zugelassen oder entfernt werden.
Beachten Sie, dass diese Methode unsichere Elemente und Attribute auch dann entfernt, wenn der Sanitizer sie zulässt. Sie entfernt dieselben Elemente wie ein Sanitizer, für den Sanitizer.removeUnsafe() aufgerufen wurde.
Das Eingabe-HTML kann deklarative Shadow Roots enthalten.
Wenn der HTML-String für einen bestimmten Shadow Host mehr als eine deklarative Shadow Root definiert, wird nur die erste ShadowRoot erstellt. Nachfolgende Deklarationen werden als <template>-Elemente innerhalb dieser Shadow Root geparst.
Verwenden Sie parseHTML() anstelle von Document.parseHTMLUnsafe(), sofern es keinen besonderen Grund gibt, unsichere Elemente und Attribute zuzulassen.
Wenn das zu parsende HTML keine unsicheren HTML-Elemente oder -Attribute enthalten muss, sollten Sie Document.parseHTML() verwenden.
Da diese Methode Eingabe-Strings immer von Elementen und Attributen bereinigt, die im Hinblick auf XSS unsicher sind, wird sie nicht durch die Trusted Types API abgesichert oder validiert.
Spezifikationen
| Spezifikation |
|---|
| HTML> # dom-parsehtml> |
Browser-Kompatibilität
Siehe auch
Document.parseHTMLUnsafe()Element.setHTML()undElement.setHTMLUnsafe()ShadowRoot.setHTML()undShadowRoot.setHTMLUnsafe()DOMParser.parseFromString()zum Parsen von HTML oder XML in einen DOM-Baum- HTML Sanitizer API