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
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:localNameoderlocalNamehat, 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
namespaceURIParameter angegeben werden. Wenn das Präfix aufxmloderxmlnsgesetzt wird, muss dernamespaceURIentsprechend aufhttp://www.w3.org/XML/1998/namespaceoderhttp://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:
- Ereignishandler-Attributinhalte wie
onclickundonloaderfordern einTrustedScript. HTMLIFrameElement.srcdocerfordert eineTrustedHTMLInstanz.HTMLScriptElement.srcerfordert eineTrustedScriptURLInstanz.SVGScriptElement.hreferfordert eineTrustedScriptURLInstanz.
Vertrauenswürdige Typen werden für andere Attribute nicht durchgesetzt, sodass ein String oder ein beliebiger vertrauenswürdiger Typ übergeben werden kann.
- Ereignishandler-Attributinhalte wie
Rückgabewert
Keiner (undefined).
Ausnahmen
NamespaceErrorDOMException-
Wird ausgelöst, wenn der Wert von
namespaceURIist:- kein gültiger Namensraum-URI.
- auf den leeren String gesetzt, wenn
prefixeinen Wert hat. - nicht der Wert
http://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/ist, wennprefixaufxmloderxmlnsgesetzt ist.
InvalidCharacterErrorDOMException-
Wird ausgelöst, wenn entweder das
prefixoderlocalNamenicht gültig ist:- Das
prefixmuss mindestens ein Zeichen enthalten und darf keine ASCII-Leerzeichen,NULL,/oder>(U+0000, U+002F oder U+003E) enthalten. - Das
localNamemuss 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
qualifiedNameein gültiger XML-Name ist. - Das
TypeError-
Wird ausgelöst, wenn
valueein 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
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①> |