aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/document/createelementns/index.html
blob: 1a4f11c616f83a392d95e931d034a63e73d6377e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
---
title: Document.createElementNS()
slug: Web/API/Document/createElementNS
tags:
  - API
  - DOM
  - Method
  - Reference
translation_of: Web/API/Document/createElementNS
---
<div>{{ApiRef("DOM")}}</div>

<p>创建一个具有指定的命名空间URI和限定名称的元素。</p>

<p>要创建一个元素而不指定命名空间URI,请使用  <a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createElement" title="createElement">createElement</a> 方法。</p>

<h2 id="Syntax" name="Syntax">语法</h2>

<pre class="brush: js"><var>let element</var> =
<var>document</var>.createElementNS(<var>namespaceURI</var>, <var>qualifiedName</var>[, options]);
</pre>

<h3 id="参数">参数</h3>

<dl>
 <dt><code>namespaceURI</code></dt>
 <dd>指定与元素相关联的<a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/glossary.html#dt-namespaceURI">命名空间URI</a>的字符串。创建的元素的<a href="/zh-CN/docs/Web/API/Node/namespaceURI">namespaceURI</a>属性使用namespaceURI的值进行初始化。 参见<a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/createElementNS#Valid_Namespace_URI's">有效的命名空间URL</a></dd>
 <dt><code>qualifiedName</code></dt>
 <dd>指定要创建的元素的类型的字符串。 创建的元素的<a href="/zh-CN/docs/DOM/element.nodeName">nodeName</a>属性使用qualifiedName的值进行初始化。</dd>
 <dt><code>options</code><span class="inlineIndicator optional optionalInline">可选的</span></dt>
 <dd>一个可选的包含单个属性的ElementCreationOptions对象,其值是预先使用customElements.define()定义的自定义元素的标签名称。为了向后兼容<a href="https://www.w3.org/TR/custom-elements/">自定义元素规范</a>的早期版本,一些浏览器允许您在此使用字符串替代对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的详情,请参阅<a href="https://developers.google.com/web/fundamentals/primers/customelements/#extendhtml">原生HTML元素</a></dd>
 <dd>新元素将被赋予一个属性,其值是自定义元素的标签名称。 自定义元素是实验中的功能,目前仅在某些浏览器中可用。</dd>
</dl>

<h3 id="返回值">返回值</h3>

<p><a href="/zh-CN/docs/Web/API/Element">元素</a></p>

<h2 id="Example" name="Example">有效的命名空间URI</h2>

<ul>
 <li>HTML - 参阅 <code>http://www.w3.org/1999/xhtml</code></li>
 <li>SVG - 参阅 <code>http://www.w3.org/2000/svg</code></li>
 <li>XBL - 参阅 <code>http://www.mozilla.org/xbl</code></li>
 <li>XUL - 参阅 <code>http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</code></li>
</ul>

<h2 id="Example" name="Example">示例</h2>

<p><a href="/zh-CN/docs/XHTML">XHTML</a>命名空间中创建一个新的&lt;div&gt;元素并将其添加到vbox的结尾处。虽然这不是一个非常有用的<a href="/zh-CN/docs/XUL">XUL</a>文档,它演示了在单个文档中使用来自两个不同命名空间的元素:</p>

<pre class="brush:xml">&lt;?xml version="1.0"?&gt;
&lt;page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      xmlns:html="http://www.w3.org/1999/xhtml"
      title="||Working with elements||"
      onload="init()"&gt;

&lt;script type="text/javascript"&gt;&lt;![CDATA[
 var container;
 var newdiv;
 var txtnode;

 function init(){
   container = document.getElementById("ContainerBox");
   newdiv = document.createElementNS("http://www.w3.org/1999/xhtml","div");
   txtnode = document.createTextNode("这是使用createElementNS和createTextNode动态构造的文本,然后使用appendChild插入到文档中。");
   newdiv.appendChild(txtnode);
   container.appendChild(newdiv);
 }

]]&gt;&lt;/script&gt;

 &lt;vbox id='ContainerBox' flex='1'&gt;
  &lt;html:div&gt;
   此页面上的脚本将添加以下动态内容:
  &lt;/html:div&gt;
 &lt;/vbox&gt;

&lt;/page&gt;
</pre>

<div class="note">
<p>上面给出的示例中使用了在XHTML文档中不推荐的内联脚本。这个特定的示例实际上是一个嵌入XHTML的XUL文档,然而,仍然建议适用。</p>
</div>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">规范</th>
   <th scope="col">状态</th>
   <th scope="col">说明</th>
  </tr>
  <tr>
   <td>{{SpecName('DOM WHATWG', "#dom-document-createelementns", "Document.createElement")}}</td>
   <td>{{Spec2('DOM WHATWG')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<p>{{CompatibilityTable}}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Edge</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
  <tr>
   <td><code>options</code> argument</td>
   <td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
   <td>{{CompatNo}}</td>
   <td>{{CompatGeckoDesktop(50)}}<sup>[2][3]</sup></td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Edge</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Phone</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<p>[1]在本规范的早期版本中,此参数只是一个字符串,其值是自定义元素的标签名称。为了向后兼容性,Chrome同时接受这两种格式。</p>

<p>[2] 参阅[1]:像Chrome一样,Firefox从51版开始在这里接受一个字符串而不是一个对象。但是在版本50中,选项必须是对象。</p>

<p>[3] 要在Firefox中实验自定义元素,必须将dom.webcomponents.enabled和dom.webcomponents.customelements.enabled首选项设置为true。</p>

<h2 id="See_also" name="See_also">相关链接</h2>

<ul>
 <li><a href="createElement">document.createElement</a></li>
 <li><a href="createTextNode">document.createTextNode</a></li>
 <li><a href="../Node/namespaceURI">Node.namespaceURI</a></li>
 <li><a class="external" href="http://www.w3.org/TR/1999/REC-xml-names-19990114">Namespaces in XML</a></li>
</ul>