Dokumentation: statische Methode parseHTML()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die statische Methode parseHTML() des Document-Objekts bietet eine XSS-sichere Methode, um einen HTML-String zu analysieren und zu bereinigen, um eine neue Document-Instanz zu erstellen.
Syntax
Document.parseHTML(input)
Document.parseHTML(input, options)
Parameter
input-
Ein String, der definiert, welcher HTML-Code bereinigt und in den Shadow-Root eingefügt wird.
optionsOptional-
Ein Optionsobjekt mit den folgenden optionalen Parametern:
sanitizer-
Ein
Sanitizer- oderSanitizerConfig-Objekt, das definiert, welche Elemente des Eingabe-Strings erlaubt oder entfernt werden, oder der String"default"für die Standard-Konfiguration des Sanitizers. Beachten Sie, dass ein"Sanitizerim Allgemeinen effizienter als eineSanitizerConfigsein sollte, wenn die Konfiguration wiederverwendet werden soll. Wenn nicht angegeben, wird die XSS-sichere Standardkonfiguration des Sanitizers verwendet.
Rückgabewert
Ein Document.
Ausnahmen
TypeError-
Dies wird ausgelöst, wenn
options.sanitizerübergeben wird mit:- Einer
SanitizerConfig, die nicht gültig ist. Zum Beispiel eine Konfiguration, die sowohl "allowed" als auch "removed" Konfigurationseinstellungen enthält. - Einem String ohne den Wert
"default". - Einem Wert, der weder ein
Sanitizer, eineSanitizerConfig, noch ein String ist.
- Einer
Beschreibung
Die Methode parseHTML() analysiert und bereinigt einen HTML-String, um eine neue Document-Instanz zu erstellen, die XSS-sicher ist.
Das resultierende Document hat einen Content-Type von "text/html", ein Zeichensatz von UTF-8 und eine URL von "about:blank".
Wenn keine Sanitizer-Konfiguration im Parameter options.sanitizer angegeben ist, wird parseHTML() mit der Standardkonfiguration des Sanitizer verwendet.
Diese Konfiguration erlaubt alle Elemente und Attribute, die als XSS-sicher gelten, wodurch Entitäten ausgeschlossen werden, die als unsicher betrachtet werden.
Ein benutzerdefinierter Sanitizer oder eine Sanitizer-Konfiguration kann angegeben werden, um auszuwählen, welche Elemente, Attribute und Kommentare erlaubt oder entfernt werden.
Beachten Sie, dass selbst wenn unsichere Optionen durch die Sanitizer-Konfiguration erlaubt werden, sie dennoch entfernt werden, wenn diese Methode verwendet wird (die implizit Sanitizer.removeUnsafe() aufruft).
Der Eingabe-HTML-Code kann deklarative Shadow Roots enthalten.
Wenn der HTML-String mehr als einen deklarativen Shadow Root in einem bestimmten Shadow-Host definiert, wird nur der erste ShadowRoot erstellt – nachfolgende Deklarationen werden als <template>-Elemente innerhalb dieses Shadow-Roots geparst.
parseHTML() sollte anstelle von Document.parseHTMLUnsafe() verwendet werden, es sei denn, es besteht ein spezifisches Bedürfnis, unsichere Elemente und Attribute zuzulassen.
Wenn der zu parierende HTML-Code keine unsicheren HTML-Entitäten enthalten muss, sollten Sie Document.parseHTML() verwenden.
Beachten Sie, dass diese Methode immer Eingabestrings von XSS-unsicheren Entitäten bereinigt, sie wird nicht durch die Trusted Types API gesichert oder validiert.
Spezifikationen
| Specification |
|---|
| HTML Sanitizer API> # dom-document-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