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
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:localNameoderlocalName, 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
namespaceURIangegeben werden. Wenn das Präfix aufxmlbeziehungsweisexmlnsgesetzt ist, mussnamespaceURIaufhttp://www.w3.org/XML/1998/namespacebeziehungsweisehttp://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:
- Event-Handler-Content-Attribute wie
onclickundonloaderfordern einTrustedScript. HTMLIFrameElement.srcdocerfordert eineTrustedHTML-Instanz.HTMLScriptElement.srcerfordert eineTrustedScriptURL-Instanz.SVGScriptElement.hreferfordert eineTrustedScriptURL-Instanz.
Für andere Attribute werden Trusted Types nicht erzwungen. Daher können eine Zeichenfolge oder ein beliebiger Trusted Type übergeben werden.
- Event-Handler-Content-Attribute wie
Rückgabewert
Keiner (undefined).
Ausnahmen
NamespaceErrorDOMException-
Wird ausgelöst, wenn der Wert von
namespaceURI:- kein gültiger Namespace-URI ist.
- eine leere Zeichenfolge ist, obwohl
prefixeinen Wert hat. - nicht
http://www.w3.org/XML/1998/namespacebeziehungsweisehttp://www.w3.org/2000/xmlns/ist, obwohlprefixaufxmlbeziehungsweisexmlnsgesetzt ist.
InvalidCharacterErrorDOMException-
Wird ausgelöst, wenn
prefixoderlocalNameungültig ist:prefixmuss mindestens ein Zeichen enthalten und darf weder ASCII-Leerraumzeichen nochNULL,/oder>enthalten (U+0000, U+002F beziehungsweise U+003E).localNamemuss mindestens ein Zeichen enthalten und darf weder ASCII-Leerraumzeichen nochNULL,/,=oder>enthalten (U+0000, U+002F, U+003D beziehungsweise U+003E).
Hinweis: Frühere Versionen der Spezifikation waren restriktiver und verlangten, dass
qualifiedNameein gültiger XML-Name ist. TypeError-
Wird ausgelöst, wenn für
valuestatt 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
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①> |