Dokumentation: parseHTML() statische Methode
Die parseHTML()
statische Methode des Document
-Objekts bietet eine XSS-sichere Methode zum Parsen und Bereinigen eines HTML-Strings, um eine neue Document
-Instanz zu erstellen.
Syntax
Document.parseHTML(input)
Document.parseHTML(input, options)
Parameter
input
-
Ein String, der HTML definiert, das bereinigt und in den Shadow-Root injiziert werden soll.
options
Optional-
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 Standardkonfiguration des Sanitisierers. Beachten Sie, dass im Allgemeinen ein"Sanitizer
erwartet wird, effizienter zu sein als einSanitizerConfig
, wenn die Konfiguration wiederverwendet werden soll. Wird dieser Parameter nicht angegeben, wird die XSS-sichere Standardkonfiguration des Sanitisierers verwendet.
Rückgabewert
Ein Document
.
Ausnahmen
TypeError
-
Dies wird geworfen, wenn
options.sanitizer
übergeben wird:- eine nicht normierte
SanitizerConfig
(eine, die sowohl "allowed" als auch "removed" Konfigurationseinstellungen enthält). - ein String, der nicht den Wert
"default"
hat. - ein Wert, der weder ein
Sanitizer
,SanitizerConfig
oder ein String ist.
- eine nicht normierte
Beschreibung
Die parseHTML()
Methode parst und bereinigt einen HTML-String, um eine neue Document
Instanz zu erstellen, die XSS-sicher ist.
Das resultierende Document
wird einen Content-Type von "text/html", einen Zeichensatz von UTF-8 und eine URL von "about:blank" haben.
Wenn keine Sanitisierer-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 betrachtet werden, und erlaubt keine Entitäten, die als unsicher gelten.
Ein benutzerdefinierter Sanitisierer oder eine Sanitisierer-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 Konfiguration des Sanitisierers erlaubt sind, sie immer noch entfernt werden, wenn diese Methode verwendet wird (die implizit Sanitizer.removeUnsafe()
aufruft).
Der Eingabe-HTML-String kann deklarative Shadow Roots enthalten.
Wenn der HTML-String mehr als eine deklarative Shadow Root in einem bestimmten Shadow-Host definiert, wird nur der erste ShadowRoot
erstellt — alle weiteren Deklarationen werden als <template>
-Elemente innerhalb dieses Shadow Roots geparst.
parseHTML()
sollte anstelle von Document.parseHTMLUnsafe()
verwendet werden, es sei denn, es gibt einen spezifischen Bedarf, unsichere Elemente und Attribute zuzulassen.
Wenn das zu parsende HTML keine unsicheren HTML-Entitäten enthalten muss, sollten Sie Document.parseHTML()
verwenden.
Da diese Methode immer unsichere Entitäten in den Eingabestrings bereinigt, wird sie nicht über das 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-Inhalten in einen DOM-Baum- HTML Sanitizer API