Document : méthode createElementNS()
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.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
La méthode createElementNS() de l'interface Document crée un nouvel élément avec l'URI de l'espace de noms défini et un nom qualifié.
C'est utile dans les documents à espaces de noms mixtes, tels que SVG ou MathML intégrés dans HTML, où l'analyseur ne peut pas déduire de manière fiable l'espace de noms.
La méthode createElement() est plus simple si vous souhaitez créer un élément HTML simple.
Syntaxe
createElementNS(namespaceURI, qualifiedName)
createElementNS(namespaceURI, qualifiedName, options)
Paramètres
namespaceURI-
Une chaîne de caractères qui définit un
namespaceURIà associer à l'élément. Certains d'espaces de noms d'URI importants sont qualifiedName-
Une chaîne de caractères contenant le nom qualifié du nouvel élément. La propriété
nodeNamede l'élément 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 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/.La valeur est utilisée pour initialiser la nouvelle propriété
prefixde l'élément. Par défaut, elle vautnull. localName-
Le nom local de l'élément. La valeur est utilisée pour initialiser la nouvelle propriété
localNamede l'élément.
optionsFacultatif-
Un objet avec les propriétés optionnelles suivantes (notez que seule l'une des propriétés
isetcustomElementRegistrypeut être définie) :isFacultatif-
Une chaîne de caractères définissant le nom de balise d'un élément personnalisé précédemment défini à l'aide de
customElements.define(). Le nouvel élément reçoit un attributisdont la valeur est le nom de la balise de l'élément personnalisé. customElementRegistryFacultatif-
Un
CustomElementRegistryqui définit le registre d'éléments personnalisés à portée locale d'un élément personnalisé.
Pour la rétrocompatibilité, certains navigateurs permettent de passer une chaîne de caractères ici à la place d'un objet, où la valeur de la chaîne de caractères est le nom de la balise de l'élément personnalisé. Voir Étendre les éléments HTML natifs (angl.) pour plus d'informations sur l'utilisation de ce paramètre.
Valeur de retour
L'objet Element nouvellement créé.
Exceptions
NamespaceErrorDOMException-
Levée si la valeur de
namespaceURIest :- pas un URI d'espace de noms valide.
- défini sur la chaîne de caractères vide lorsque
prefixa une valeur. - pas la valeur
http://www.w3.org/XML/1998/namespaceouhttp://www.w3.org/2000/xmlns/lorsqueprefixest défini surxmlouxmlns, respectivement.
InvalidCharacterErrorDOMException-
Levée si
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
localNameest un nom d'élément valide s'il a une longueur d'au moins 1 et :- il commence par un caractère alphabétique et ne contient pas d'espaces ASCII,
NULL,/ou>(U+0000, U+002F ou U+003E, respectivement). - il commence par
:(U+003A),_(U+005F) ou tout caractère dans la plage U+0080 à U+10FFFF (inclus), et les points de code restants ne contiennent que ces mêmes caractères ainsi que les caractères alphanumériques ASCII,-(U+002D) et.(U+002E),
- il commence par un caractère alphabétique et ne contient pas d'espaces ASCII,
Note : Les versions antérieures de la spécification étaient plus restrictives, exigeant que le
qualifiedNamesoit un nom XML (angl.) valide. - Le
NotSupportedErrorDOMException-
Levée si les options
isetcustomElementRegistrysont toutes deux définies.
Exemples
>Utilisation simple
Voici comment créer un nouvel élément <div> dans l'espace de noms XHTML.
const divElementXHTML = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"div",
);
// Ceci est équivalent !
const divElementHTML = document.createElement("div");
Créer un élément SVG
Voici comment créer un élément SVG (SVGSVGElement) et l'ajouter à l'élément HTML <body>.
L'utilisation de createElementNS() avec l'espace de noms SVG est nécessaire lorsqu'on travaille avec un document HTML.
Si vous appeliez createElement("svg"), un objet HTMLUnknownElement est retourné, et le SVG n'est pas rendu.
const svgNS = "http://www.w3.org/2000/svg";
const svg = document.createElementNS(svgNS, "svg");
svg.setAttribute("width", "100");
svg.setAttribute("height", "100");
const circle = document.createElementNS(svgNS, "circle");
circle.setAttribute("cx", "50");
circle.setAttribute("cy", "50");
circle.setAttribute("r", "40");
circle.setAttribute("fill", "steelblue");
svg.appendChild(circle);
document.body.appendChild(svg);
Spécifications
| Spécification |
|---|
| DOM> # ref-for-dom-document-createelementns①> |
Compatibilité des navigateurs
Voir aussi
- La méthode
document.createElement() - La méthode
document.createTextNode() - La propriété
Element.namespaceURI