Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
Document.parseHTML(input)
Document.parseHTML(input, options)

Parameter

input

Ein String mit HTML, das bereinigt und in die Shadow Root eingefügt werden soll.

options Optional

Ein Optionsobjekt mit dem folgenden optionalen Parameter:

sanitizer

Ein Sanitizer- oder SanitizerConfig-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 von Sanitizer zum Einsatz.

Wenn Sie dieselbe Konfiguration mehrfach verwenden, ist es voraussichtlich effizienter, einen Sanitizer zu verwenden und ihn bei Bedarf anzupassen.

Rückgabewert

Ein Document.

Ausnahmen

TypeError

Wird ausgelöst, wenn an options.sanitizer einer 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 Sanitizer noch eine SanitizerConfig noch ein String ist.

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