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
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:localNameoderlocalNameaufweist, 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 aufxmloderxmlnsgesetzt, mussnamespaceURIaufhttp://www.w3.org/XML/1998/namespaceoderhttp://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:
- Event-Handler-Inhaltsattribute, wie
onclickundonload, benötigenTrustedScript. HTMLIFrameElement.srcdocbenötigt eineTrustedHTML-Instanz.HTMLScriptElement.srcbenötigt eineTrustedScriptURL-Instanz.SVGScriptElement.hrefbenötigt eineTrustedScriptURL-Instanz.
Für andere Attribute werden Trusted-Typen nicht durchgesetzt, sodass ein String oder jeder Trusted-Typ übergeben werden kann.
- Event-Handler-Inhaltsattribute, wie
Rückgabewert
Keiner (undefined).
Ausnahmen
NamespaceErrorDOMException-
Wird ausgelöst, wenn der Wert von
namespaceURI:- kein gültiger Namespace-URI ist.
- auf den leeren String gesetzt ist, wenn
prefixeinen Wert hat. - nicht der Wert
http://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/ist, wennprefixaufxmloderxmlnsgesetzt ist, jeweils.
InvalidCharacterErrorDOMException-
Wird ausgelöst, wenn entweder das
prefixoderlocalNameungültig ist:- Das
prefixmuss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen,NULL,/oder>(U+0000, U+002F oder U+003E, jeweils) enthalten. - Das
localNamemuss 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
qualifiedNameein gültiger XML-Name war. - Das
TypeError-
Wird ausgelöst, wenn
valueein 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
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①> |