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

View in English Always switch to English

Element: Methode setAttributeNS()

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Warnung: Diese Methode kann Attributwerte annehmen, die je nach Attribut als HTML, Skript oder als Skript-URL geparst werden. Solche APIs sind bekannt als Einschleusungs-Senken und können potenziell ein Vektor für Cross-Site-Scripting (XSS)-Angriffe sein, wenn der Wert ursprünglich von einem Angreifer stammt.

Sie können dieses Risiko mindern, indem Sie immer das entsprechende Trusted-Objekt (TrustedHTML, TrustedScript oder TrustedScriptURL) für jene Attribute übergeben, die dies erfordern, anstatt von Strings, und indem Sie trusted types durchsetzen. Weitere Informationen finden Sie unter Sicherheitsüberlegungen in Element.setAttribute().

Die setAttributeNS()-Methode der Element-Schnittstelle fügt ein neues Attribut hinzu oder ändert den Wert eines Attributs mit dem angegebenen Namespace und Namen.

Wenn Sie mit HTML-Dokumenten arbeiten und das angeforderte Attribut nicht als Teil eines bestimmten Namespace spezifizieren müssen, verwenden Sie stattdessen die setAttribute()-Methode.

Syntax

js
setAttributeNS(namespaceURI, qualifiedName, value)

Parameter

namespaceURI

Ein String, der den Namespace des zu setzenden Attributs angibt oder der leere String.

qualifiedName

Ein String, der das Attribut durch seinen qualifizierten Namen identifiziert, das Format prefix:localName oder localName aufweist, wobei die Teile wie folgt definiert sind:

prefix

Ein "kurzes Alias" für den Namespace. Das Präfix ist optional, aber wenn es angegeben wird, muss auch der namespaceURI-Parameter angegeben werden. Wird das Präfix auf xml oder xmlns gesetzt, muss namespaceURI auf http://www.w3.org/XML/1998/namespace oder http://www.w3.org/2000/xmlns/ gesetzt werden, jeweils.

localName

Der lokale Name des Attributs.

value

Ein Trusted-Typ oder String, der den Wert enthält, der dem Attribut zugewiesen werden soll.

Für folgende Attribute müssen Trusted-Typ-Instanzen übergeben werden, wenn Trusted-Typen durchgesetzt werden:

Für andere Attribute werden Trusted-Typen nicht durchgesetzt, sodass ein String oder jeder Trusted-Typ übergeben werden kann.

Rückgabewert

Keiner (undefined).

Ausnahmen

NamespaceError DOMException

Wird ausgelöst, wenn der Wert von namespaceURI:

  • kein gültiger Namespace-URI ist.
  • auf den leeren String gesetzt ist, wenn prefix einen Wert hat.
  • nicht der Wert http://www.w3.org/XML/1998/namespace oder http://www.w3.org/2000/xmlns/ ist, wenn prefix auf xml oder xmlns gesetzt ist, jeweils.
InvalidCharacterError DOMException

Wird ausgelöst, wenn entweder das prefix oder localName ungültig ist:

  • Das prefix muss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen, NULL, / oder > (U+0000, U+002F oder U+003E, jeweils) enthalten.
  • Das localName muss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen, NULL, /, = oder > (U+0000, U+002F, U+003D oder U+003E, jeweils) enthalten.

Hinweis: Frühere Versionen der Spezifikation waren restriktiver und erforderten, dass qualifiedName ein gültiger XML-Name war.

TypeError

Wird ausgelöst, wenn value ein String anstelle eines Trusted-Typ-Objekts übergeben wird (für jene Attribute, die diese erfordern), wenn Trusted-Typen durch eine CSP durchgesetzt werden und keine Standardrichtlinie definiert ist.

Beispiele

Grundlegende Verwendung

js
let d = document.getElementById("d1");
d.setAttributeNS(
  "http://www.mozilla.org/ns/specialspace",
  "spec:align",
  "center",
);

Trusted-Typen

Das Beispiel Unsichere Attribute setzen in setAttribute() zeigt, wie Sie setAttributeNS() mit den Trusted-Typen verwenden könnten.

Spezifikationen

Spezifikation
DOM
# ref-for-dom-element-setattributens①

Browser-Kompatibilität

Siehe auch