Element : méthode setAttributeNS()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Attention : Cette méthode peut prendre des valeurs d'attribut qui sont analysées comme du HTML, un script ou une URL de script, selon l'attribut. Les API de ce type sont connues sous le nom de points d'injection et peuvent potentiellement être un vecteur pour des attaques de script inter-site (XSS), si la valeur provient initialement d'un·e attaquant·e.
Vous pouvez atténuer ce risque en passant toujours l'objet de type de confiance approprié (TrustedHTML, TrustedScript ou TrustedScriptURL) au lieu de chaînes de caractères pour les attributs qui les nécessitent, et en appliquant les types de confiance.
Voir Considérations de sécurité pour plus d'informations.
La méthode setAttributeNS() de l'interface Element ajoute un nouvel attribut ou modifie la valeur d'un attribut avec l'espace de noms et le nom donnés.
Si vous manipulez des documents HTML et que vous n'avez pas besoin de définir que l'attribut demandé fait partie d'un espace de noms spécifique, utilisez plutôt la méthode setAttribute().
Syntaxe
setAttributeNS(namespaceURI, qualifiedName, value)
Paramètres
namespaceURI-
Une chaîne de caractères définissant l'espace de noms de l'attribut à définir, ou la chaîne de caractères vide.
qualifiedName-
Une chaîne de caractères identifiant l'attribut par son nom qualifié, qui a le format
prefix:localNameoulocalName, où les parties sont définies comme suit :prefix-
Un « alias court » pour l'espace de noms. Le préfixe est facultatif, mais s'il est défini, le paramètre
namespaceURIdoit également être défini. Si le préfixe est défini surxmlouxmlns, lenamespaceURIdoit être défini respectivement surhttp://www.w3.org/XML/1998/namespaceouhttp://www.w3.org/2000/xmlns/. localName-
Le nom local de l'attribut.
value-
Une chaîne de caractères ou un type de confiance contenant la valeur à attribuer à l'attribut.
Des instances de type de confiance doivent être passées pour les attributs suivants lorsque les types de confiance sont appliqués :
- Les attributs de contenu des gestionnaires d'évènements, tels que
onclicketonload, nécessitent unTrustedScript. HTMLIFrameElement.srcdocnécessite une instance deTrustedHTML.HTMLScriptElement.srcnécessite une instance deTrustedScriptURL.SVGScriptElement.hrefnécessite une instance deTrustedScriptURL.
Les types de confiance ne sont pas appliqués pour les autres attributs, donc une chaîne de caractères ou tout type de confiance peut être passé.
- Les attributs de contenu des gestionnaires d'évènements, tels que
Valeur de retour
Aucune (undefined).
Exceptions
NamespaceErrorDOMException-
Levée si la valeur de
namespaceURIest :- n'est pas un URI d'espace de noms valide.
- définie sur la chaîne de caractères vide lorsque
prefixa une valeur. - n'est pas la valeur
http://www.w3.org/XML/1998/namespaceouhttp://www.w3.org/2000/xmlns/lorsqueprefixest défini surxmlouxmlns, respectivement.
InvalidCharacterErrorDOMException-
Levée si l'un des
prefixoulocalNamen'est pas valide :- Le
prefixdoit contenir au moins un caractère et ne peut pas contenir d'espaces ASCII,NULL,/ou>(U+0000, U+002F ou U+003E, respectivement). - Le
localNamedoit contenir au moins un caractère et ne peut pas contenir d'espaces ASCII,NULL,/,=ou>(U+0000, U+002F, U+003D ou U+003E, respectivement).
Note : Les versions antérieures de la spécification étaient plus restrictives, exigeant que le
qualifiedNamesoit un nom XML (angl.) valide. - Le
TypeError-
Levée si
valueest passée une chaîne de caractères au lieu d'un objet de type de confiance (pour les attributs qui les nécessitent) lorsque les types de confiance sont appliqués par une CSP et qu'aucune politique par défaut n'est définie.
Exemples
>Utilisation simple
let d = document.getElementById("d1");
d.setAttributeNS(
"http://www.mozilla.org/ns/specialspace",
"spec:align",
"center",
);
Types de confiance
L'exemple Définir des attributs non sécurisés dans setAttribute() montre comment vous pouvez utiliser setAttributeNS() avec les types de confiance.
Spécifications
| Spécification |
|---|
| DOM> # ref-for-dom-element-setattributens①> |
Compatibilité des navigateurs
Voir aussi
- La méthode
Element.hasAttributeNS() - La méthode
Element.getAttributeNS() - La méthode
Element.removeAttributeNS() - La méthode
Element.setAttribute()