Dokument: createElementNS()-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.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die createElementNS()-Methode der Document-Schnittstelle erstellt ein neues Element mit dem angegebenen Namensraum-URI und qualifiziertem Namen.
Dies ist nützlich in Dokumenten mit gemischtem Namensraum, wie SVG oder MathML, die in HTML eingebettet sind, wo der Parser den Namensraum nicht zuverlässig ableiten kann.
Die createElement()-Methode ist einfacher, wenn Sie ein einfaches HTML-Element erstellen möchten.
Syntax
createElementNS(namespaceURI, qualifiedName)
createElementNS(namespaceURI, qualifiedName, options)
Parameter
namespaceURI-
Ein String, der den
namespaceURIangibt, der dem Element zugeordnet wird. Einige wichtige Namensraum-URIs sind: qualifiedName-
Ein String, der den qualifizierten Namen des neuen Elements enthält. Die
nodeName-Eigenschaft des erstellten Elements wird mit diesem Wert initialisiert.Das Format des qualifizierten Namens ist
prefix:localNameoderlocalName, wobei die Teile wie folgt definiert sind:prefixOptional-
Ein "kurzes Alias" für den Namensraum. Das Präfix ist optional, aber wenn es angegeben wird, muss auch der
namespaceURI-Parameter angegeben werden. Wenn das Präfix aufxmloderxmlnsgesetzt ist, mussnamespaceURIaufhttp://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/gesetzt werden, beziehungsweise.Der Wert wird verwendet, um die neue
prefix-Eigenschaft des Elements zu initialisieren. Standardmäßig aufnullgesetzt. localName-
Der lokale Name des Elements. Der Wert wird verwendet, um die neue
localName-Eigenschaft des Elements zu initialisieren.
optionsOptional-
Ein Objekt mit den folgenden optionalen Eigenschaften (beachten Sie, dass nur eine von
isundcustomElementRegistryfestgelegt werden darf):isOptional-
Ein String, der den Tag-Namen für ein zuvor definiertes benutzerdefiniertes Element mittels
customElements.define()definiert. Das neue Element erhält einis-Attribut, dessen Wert der Tag-Name des benutzerdefinierten Elements ist. customElementRegistryOptional-
Ein
CustomElementRegistry, das das spezifische Register für benutzerdefinierte Elemente eines benutzerdefinierten Elements festlegt.
Aus Gründen der Rückwärtskompatibilität erlauben einige Browser, hier einen String statt eines Objekts zu übergeben, wobei der Wert des Strings der Tag-Name des benutzerdefinierten Elements ist. Weitere Informationen zur Verwendung dieses Parameters finden Sie unter Erweiterung von nativen HTML-Elementen.
Rückgabewert
Das neue Element.
Ausnahmen
NamespaceErrorDOMException-
Wird ausgelöst, wenn der
namespaceURI-Wert:- kein gültiger Namensraum-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, beziehungsweise.
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, beziehungsweise) enthalten. - Das
localNameist ein gültiger Elementname, wenn es eine Mindestlänge von 1 hat und:- es mit einem alphabetischen Zeichen beginnt und keine ASCII-Leerzeichen,
NULL,/, oder>(U+0000, U+002F, oder U+003E, beziehungsweise) enthält. - es mit
:(U+003A),_(U+005F), oder einem Zeichen im Bereich U+0080 bis U+10FFFF (einschließlich) beginnt und die verbleibenden Codepunkte nur diese gleichen Zeichen sowie die ASCII-alphanumerischen Zeichen,-(U+002D), und.(U+002E) umfassen,
- es mit einem alphabetischen Zeichen beginnt und keine ASCII-Leerzeichen,
Hinweis: Frühere Versionen der Spezifikation waren restriktiver und verlangten, dass der
qualifiedNameein gültiger XML-Name ist. - Das
NotSupportedErrorDOMException-
Wird ausgelöst, wenn sowohl die
is- als auch diecustomElementRegistry-Optionen angegeben sind.
Beispiele
>Grundlegende Verwendung
Dies zeigt, wie man ein neues <div>-Element im XHTML-Namensraum erstellt.
const divElementXHTML = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"div",
);
// This is equivalent!
const divElementHTML = document.createElement("div");
Erstellen eines SVG-Elements
Dieses Beispiel zeigt, wie Sie ein SVG-Element (SVGSVGElement) erstellen und an das HTML-<body>-Element anhängen können.
Die Verwendung von createElementNS() mit dem SVG-Namespace ist notwendig, wenn Sie mit einem HTML-Dokument arbeiten.
Wenn Sie createElement("svg") aufrufen würden, würde ein HTMLUnknownElement zurückgegeben und das SVG nicht gerendert.
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);
Spezifikationen
| Spezifikation |
|---|
| DOM> # ref-for-dom-document-createelementns①> |