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: parseHTML() statische Methode

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 parseHTML() statische Methode des Document-Objekts bietet eine XSS-sichere Methode zum Parsen und Säubern eines HTML-Strings, um eine neue Document-Instanz zu erstellen.

Syntax

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

Parameter

input

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

options Optional

Ein Optionsobjekt mit den folgenden optionalen Parametern:

sanitizer

Ein Sanitizer oder SanitizerConfig-Objekt, das definiert, welche Elemente des Inputs erlaubt oder entfernt werden, oder der String "default" für die Standardsäuberungskonfiguration. Die Methode entfernt alle XSS-unsicheren Elemente und Attribute, auch wenn diese vom sanitizer erlaubt sind. Wird keine Angabe gemacht, wird die Standardkonfiguration des Sanitizer verwendet.

Beachten Sie, dass die Verwendung derselben Konfiguration mehrmals effizienter ist, wenn Sie einen Sanitizer verwenden und diesen bei Bedarf ändern.

Rückgabewert

Ein Document.

Ausnahmen

TypeError

Dies wird ausgelöst, wenn options.sanitizer übergeben wird:

  • SanitizerConfig, die nicht gültig ist. Zum Beispiel eine Konfiguration, die sowohl "allowed" als auch "removed" Konfigurationseinstellungen enthält.
  • ein String, der nicht den Wert "default" hat.
  • ein Wert, der kein Sanitizer, SanitizerConfig oder 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 Inhaltstyp von "text/html", einen Zeichensatz von UTF-8 und eine URL von "about:blank" haben.

Wenn kein sanitizer im options.sanitizer-Parameter angegeben ist, wird parseHTML() mit der Standardsäuberungskonfiguration verwendet. Diese Konfiguration eignet sich für die meisten Anwendungsfälle, da sie XSS-Angriffe sowie andere Angriffe wie Clickjacking oder Spoofing verhindert.

Ein benutzerdefinierter Sanitizer oder SanitizerConfig kann angegeben werden, um auszuwählen, welche Elemente, Attribute und Kommentare erlaubt oder entfernt werden. Beachten Sie, dass selbst wenn unsichere Optionen vom sanitizer erlaubt sind, sie bei der Verwendung dieser Methode dennoch entfernt werden (sie entfernt die gleichen Elemente wie ein Sanitizer, auf dem Sanitizer.removeUnsafe() aufgerufen wurde).

Das Eingabe-HTML kann deklarative Shadow-Roots enthalten. Wenn der HTML-String mehr als eine deklarative Shadow-Root in einem bestimmten Shadow-Host definiert, wird nur die erste ShadowRoot erstellt - nachfolgende Deklarationen werden als <template>-Elemente innerhalb dieser Shadow-Root geparst.

parseHTML() sollte anstelle von Document.parseHTMLUnsafe() verwendet werden, es sei denn, es besteht ein spezifischer Bedarf, unsichere Elemente und Attribute zuzulassen. Wenn das zu parende HTML keine unsicheren HTML-Entities enthalten muss, sollten Sie Document.parseHTML() verwenden.

Beachten Sie, dass, da diese Methode Eingabestrings von XSS-unsicheren Entitäten immer säubert, sie nicht unter Verwendung der Trusted Types API gesichert oder validiert wird.

Spezifikationen

Spezifikation
HTML
# dom-parsehtml

Browser-Kompatibilität

Siehe auch