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 entgegennehmen, die je nach Attribut als HTML, Skript oder Skript-URL interpretiert werden. APIs wie diese werden als Injection Sinks bezeichnet und können einen Angriffsvektor für Cross-Site-Scripting-Angriffe (XSS) darstellen, wenn der Wert ursprünglich von einem Angreifer stammt.

Sie können dieses Risiko verringern, indem Sie für Attribute, die dies erfordern, statt Zeichenfolgen stets ein Objekt des entsprechenden Trusted Type (TrustedHTML, TrustedScript oder TrustedScriptURL) übergeben und Trusted Types erzwingen. Weitere Informationen finden Sie unter Sicherheitsaspekte zu Element.setAttribute().

Die Methode setAttributeNS() des Interfaces Element 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 nicht angeben müssen, dass das betreffende Attribut zu einem bestimmten Namespace gehört, verwenden Sie stattdessen die Methode setAttribute().

Syntax

js
setAttributeNS(namespaceURI, qualifiedName, value)

Parameter

namespaceURI

Eine Zeichenfolge, die den Namespace des zu setzenden Attributs angibt, oder eine leere Zeichenfolge.

qualifiedName

Eine Zeichenfolge, die das Attribut anhand seines qualifizierten Namens identifiziert. Dieser hat das Format prefix:localName oder localName, wobei die Bestandteile wie folgt definiert sind:

prefix

Ein „kurzer Alias“ für den Namespace. Das Präfix ist optional. Wenn es angegeben wird, muss auch der Parameter namespaceURI angegeben werden. Wenn das Präfix auf xml beziehungsweise xmlns gesetzt ist, muss namespaceURI auf http://www.w3.org/XML/1998/namespace beziehungsweise http://www.w3.org/2000/xmlns/ gesetzt sein.

localName

Der lokale Name des Attributs.

value

Ein Trusted Type oder eine Zeichenfolge mit dem Wert, der dem Attribut zugewiesen werden soll.

Wenn Trusted Types erzwungen werden, müssen für die folgenden Attribute Instanzen des jeweiligen Trusted Type übergeben werden:

Für andere Attribute werden Trusted Types nicht erzwungen. Daher können eine Zeichenfolge oder ein beliebiger Trusted Type übergeben werden.

Rückgabewert

Keiner (undefined).

Ausnahmen

NamespaceError DOMException

Wird ausgelöst, wenn der Wert von namespaceURI:

  • kein gültiger Namespace-URI ist.
  • eine leere Zeichenfolge ist, obwohl prefix einen Wert hat.
  • nicht http://www.w3.org/XML/1998/namespace beziehungsweise http://www.w3.org/2000/xmlns/ ist, obwohl prefix auf xml beziehungsweise xmlns gesetzt ist.
InvalidCharacterError DOMException

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

  • prefix muss mindestens ein Zeichen enthalten und darf weder ASCII-Leerraumzeichen noch NULL, / oder > enthalten (U+0000, U+002F beziehungsweise U+003E).
  • localName muss mindestens ein Zeichen enthalten und darf weder ASCII-Leerraumzeichen noch NULL, /, = oder > enthalten (U+0000, U+002F, U+003D beziehungsweise U+003E).

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

TypeError

Wird ausgelöst, wenn für value statt eines Trusted-Type-Objekts eine Zeichenfolge übergeben wird (bei Attributen, die ein solches Objekt erfordern), während Trusted Types durch eine CSP erzwungen 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 Types

Das Beispiel Unsichere Attribute setzen zu setAttribute() zeigt, wie Sie setAttributeNS() mit Trusted Types verwenden können.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch