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

js
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 oder SanitizerConfig 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 ein SanitizerConfig, wenn die Konfiguration wiederverwendet werden soll. Wird dieser Parameter nicht angegeben, wird die XSS-sichere Standardkonfiguration des Sanitisierers verwendet.

Rückgabewert

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.

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