Document : méthode createAttributeNS()
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.
La méthode createAttributeNS() de l'interface Document crée un nouveau nœud d'attribut avec l'URI de l'espace de noms et le nom qualifié définis.
L'objet créé est un nœud implémentant l'interface Attr.
Le DOM n'impose pas le type d'attribut à ajouter à un élément particulier de cette manière.
Syntaxe
createAttributeNS(namespaceURI, qualifiedName)
Paramètres
namespaceURI-
Une chaîne de caractères qui définit le
namespaceURIà associer à l'attribut, ou la chaîne de caractères vide. Dans les documents HTML, la plupart des attributs sont dans le espace de noms null — utilisez la chaîne de caractères vide pour ceux-ci. Utilisez un URI d'espace de noms spécifique uniquement lors de la création d'un attribut avec espace de noms, tel quexml:langouxml:space. Certains URI d'espace de noms sont :- XML :
http://www.w3.org/XML/1998/namespace(pourxml:lang,xml:space) - XMLNS :
http://www.w3.org/2000/xmlns/(pourxmlns,xmlns:*) - XLink :
http://www.w3.org/1999/xlink(pourxlink:href,xlink:title, etc.)
- XML :
qualifiedName-
Une chaîne de caractères contenant le nom qualifié du nouvel attribut. La propriété
namede l'attribut créé est initialisée avec cette valeur.Le format du nom qualifié est
prefix:localNameoulocalName, où les parties sont définies comme suit :prefixFacultatif-
Un « alias court » pour l'espace de noms. Le préfixe est optionnel, 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 surhttp://www.w3.org/XML/1998/namespaceouhttp://www.w3.org/2000/xmlns/, respectivement.La valeur est utilisée pour initialiser la propriété
prefixdu nouvel attribut. Par défaut,null. localName-
Le nom local de l'attribut. La valeur est utilisée pour initialiser la propriété
localNamedu nouvel attribut.
Valeur de retour
Le nouveau nœud Attr.
Exceptions
NamespaceErrorDOMException-
Levée si la valeur de
namespaceURIest :- pas un URI d'espace de noms valide.
- définie sur la chaîne de caractères vide lorsque
prefixa une valeur. - différente de
http://www.w3.org/XML/1998/namespaceouhttp://www.w3.org/2000/xmlns/lorsqueprefixest défini surxmlouxmlns, respectivement.
InvalidCharacterErrorDOMException-
Levée si l'un des deux,
prefixoulocalName, n'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
localNamesoit un nom XML (angl.) valide. - Le
Exemples
>Créer un attribut avec espace de noms
Cet exemple crée un attribut xml:lang avec l'espace de noms XML et l'attache à un élément de paragraphe.
Cet attribut définit la langue du contenu de l'élément pour le traitement XML.
<p id="salutation">Bonjour !</p>
const el = document.getElementById("salutation");
const attr = document.createAttributeNS(
"http://www.w3.org/XML/1998/namespace",
"xml:lang",
);
attr.value = "fr";
el.setAttributeNode(attr);
Créer un attribut sans préfixe
Dans les documents HTML, les attributs sans préfixe (comme les attributs de présentation SVG tels que viewBox) sont dans l'espace de noms nul.
Utilisez la chaîne de caractères vide pour le paramètre namespaceURI afin de correspondre à cela.
<svg id="svg"></svg>
const svg = document.getElementById("svg");
const attr = document.createAttributeNS("", "viewBox");
attr.value = "0 0 100 100";
svg.setAttributeNode(attr);
console.log(svg.getAttribute("viewBox")); // "0 0 100 100"
Notez que, dans la plupart des cas, vous pouvez utiliser Element.setAttribute() au lieu de createAttributeNS() pour les attributs sans préfixe :
svg.setAttribute("viewBox", "0 0 100 100");
Spécifications
| Spécification |
|---|
| DOM> # dom-document-createattributens> |
Compatibilité des navigateurs
Voir aussi
- La méthode
Document.createAttribute() - La méthode
Document.createElementNS() - La méthode
Element.setAttributeNS() - La méthode
Element.setAttributeNode() - La méthode
Element.setAttributeNodeNS()