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

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 als Injection Sinks bekannt und bieten potenziell eine Angriffsfläche für Cross-Site Scripting (XSS)-Angriffe, wenn der Wert ursprünglich von einem Angreifer stammt.

Sie können dieses Risiko mindern, indem Sie immer das entsprechende vertrauenswürdige Typobjekt (TrustedHTML, TrustedScript oder TrustedScriptURL) anstelle von Strings für diese Attribute verwenden, die sie erfordern, und vertrauenswürdige Typen durchsetzen. Siehe Sicherheitsüberlegungen in Element.setAttribute() für weitere Informationen.

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

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

Syntax

js
setAttributeNS(namespaceURI, qualifiedName, value)

Parameter

namespaceURI

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

qualifiedName

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

prefix

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

localName

Der lokale Name des Attributs.

value

Ein vertrauenswürdiger Typ oder String, der den zuzuweisenden Wert für das Attribut enthält.

Für die folgenden Attribute müssen vertrauenswürdige Typinstanzen übergeben werden, wenn vertrauenswürdige Typen durchgesetzt werden:

Vertrauenswürdige Typen werden für andere Attribute nicht durchgesetzt, sodass ein String oder ein beliebiger vertrauenswürdiger Typ übergeben werden kann.

Rückgabewert

Keiner (undefined).

Ausnahmen

NamespaceError DOMException

Wird ausgelöst, wenn der Wert von namespaceURI ist:

  • kein gültiger Namensraum-URI.
  • auf den leeren String gesetzt, 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.
InvalidCharacterError DOMException

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

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

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

TypeError

Wird ausgelöst, wenn value ein String anstelle eines vertrauenswürdigen Typobjekts übergeben wird (für diejenigen Attribute, die diese erfordern), wenn Vertrauenswürdige Typen durch eine CSP durchgesetzt werden und keine Standardrichtlinie definiert ist.

Beispiele

Grundlegende Nutzung

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

Vertrauenswürdige Typen

Das Beispiel Unsafe Attribute Setting in setAttribute() zeigt, wie Sie setAttributeNS() mit den trusted types verwenden könnten.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch