<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2016-05-14 09:55:50 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#concept-custom-element-definition-lifecycle-callbacks">https://html.spec.whatwg.org/#concept-custom-element-definition-lifecycle-callbacks</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2016-05-14 09:55:50 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#callback-reaction">https://html.spec.whatwg.org/#callback-reaction</anchor-external></li></ul></refs></section><section><h1><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生活環コールバック群</f> (カスタム要素定義)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素定義</anchor>は、<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>生活環コールバック群</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">lifecycle callbacks</rt></rubyb></f></dfn>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> これは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>です。次の3つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キー</anchor>を持ちます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src>。<figure class="short list"><ul><li><code>connectedCallback</code></li><li><code>disconnectedCallback</code></li><li><code>attributeChangedCallback</code></li><li><code>adoptedCallback</code></li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キー</anchor>に対応する値は、
<code class="IDL" xml:lang="en">Function</code> か、<code class="IDL">null</code>のいずれかです。
既定値は、<code class="IDL" xml:lang="en">null</code> です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> これらの値は、 <code class="DOMm" xml:lang="en">define</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素定義</anchor>を作成する時に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素構築器</anchor>の <code class="JS" xml:lang="en">prototype</code> から設定されます。</p></section><section><h1>コールバック反応</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コールバック反応<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">callback reaction</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生活環コールバック</anchor>を実行するもので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コールバック関数</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数リスト</anchor>を持ちます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コールバック反応</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素反応キュー</anchor>で使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素コールバック反応をキューに追加<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">enqueue a custom element callback reaction</rt></rubyb></dfn>する操作は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素</anchor><var>要素</var>、
<var>コールバック名</var>、<var>引数リスト</var>について、次のようにします <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <var>定義</var>を、<var>要素</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素定義</f>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <var>コールバック</var>を、<var>定義</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生活環コールバック群</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キー</f>が<var>コールバック名</var>の項目の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">値</f>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <var>コールバック</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">未定義</anchor>なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> ここで停止します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <var>コールバック名</var>が <code>attributeChangedCallback</code> なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <var>属性名</var>を、<var>引数リスト</var>の最初の項目に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <var>定義</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被観察属性群</f>に<var>属性名</var>が含まれないなら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> ここで停止します。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <var>要素</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素反応キュー</f>に、
<var>コールバック</var>と<var>引数リスト</var>の組である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コールバック反応</anchor>を追加します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <var>要素</var>について<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適切な要素キューに要素を追加</anchor>します。</li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素の格上げ</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">挿入</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">削除</anchor>で呼び出されます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 実行については、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素反応キュー</anchor>参照。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Take care of missing custom element reactions</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-06-30 03:04:46 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/a57c88711c995356e44d019f5bd81d0cdedac2bf">https://github.com/whatwg/html/commit/a57c88711c995356e44d019f5bd81d0cdedac2bf</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Fix customized built-in element &quot;is&quot; handling and reactions</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-06-07 01:55:58 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/4e632a82728d68a8a6bd32f02083762b7792ddf7">https://github.com/whatwg/html/commit/4e632a82728d68a8a6bd32f02083762b7792ddf7</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en">Implement new custom element adoption semantics</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-07-21 18:25:57 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/feb77d09793a2ed8d49a6949dbca73eabb60ae79">https://github.com/whatwg/html/commit/feb77d09793a2ed8d49a6949dbca73eabb60ae79</anchor-external></p></section></body></html>