aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/document/registerelement/index.html
blob: 3b2f153115e55fd2ee183ec9793900348a47cb65 (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
---
title: Document.registerElement()
slug: Web/API/Document/registerElement
tags:
  - API
  - DOM
  - Deprecated
translation_of: Web/API/Document/registerElement
---
<p>{{APIRef("DOM")}}{{Deprecated_header}}</p>

<div class="warning">
<p>警告:不建议使用<code>document.registerElement()</code>,请使用{{DOMxRef("CustomElementRegistry.define()","customElements.define()")}}</p>
</div>

<p>{{draft}}</p>

<p><code><strong>Document.registerElement()</strong></code> 在浏览器注册一个新的 <a href="/en-US/docs/Web/Web_Components/Custom_Elements">自定义元素</a> ,返回一个该元素的构造函数。</p>

<div class="note">
<p><strong><span class="s1">注意</span></strong>这是一项正在试验的技术。你可以在支持Web Components的浏览器中使用。参考 <a href="/en-US/docs/Web/Web_Components#Enabling_Web_Components_in_Firefox">在火狐浏览器启用Web Components</a> 。</p>
</div>

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

<pre class="syntaxbox">var <em>constructor</em> = document.registerElement(<em>tag-name</em>, <em>options</em>);</pre>

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

<dl>
 <dt><em>tag-name</em></dt>
 <dd>自定义标签的名字。 必须含有一个连字符(-),例如 <code>my-tag。</code></dd>
 <dt><em>options {{optional_inline}}</em></dt>
 <dd>这个参数是一个用于添加描述自定义元素原型属性和扩展的对象,以扩展现有标签。这个参数是可选的。</dd>
</dl>

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

<p>这里有几个简单的例子:</p>

<pre class="brush: js">var Mytag = document.registerElement('my-tag');
</pre>

<p>我们把新标签注册到浏览器。 <code>Mytag</code> 变量拥有一个构造函数,你可以像如下所示一样使用它创造一个新的<span style="font-family: courier,andale mono,monospace;">my-tag</span>元素<span style="font-family: courier,andale mono,monospace;"></span></p>

<pre class="brush: js">document.body.appendChild(new Mytag());</pre>

<p>这样我们就插入了一个空的<span style="font-family: courier,andale mono,monospace;">my-tag元素,你可以通过浏览器提供的开发者工具来找到它。</span>如果你使用浏览器来查看源代码它是不可见的<span style="font-family: courier,andale mono,monospace;">。由于现在元素并没有内容,所以我们在页面中是看不到它的。我们可以给它添加一些内容,以便在页面中看到</span>。 下面是一种往新标签里面添加内容的方式。</p>

<pre class="brush: js">var mytag = document.getElementsByTagName("my-tag")[0];
mytag.textContent = "I am a my-tag element.";
</pre>

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

<p>{{Compat("api.Document.registerElement")}}</p>

<h2 id="另请参阅">另请参阅</h2>

<ul>
 <li><a dir="ltr" href="https://developer.mozilla.org/en-US/docs/Web/Web_Components/Custom_Elements">Custom Elements</a></li>
</ul>