[3] CustomElementsRegistry
インターフェイスの
define
メソッドは、
要素定義、すなわち
CustomElementsRegistry
オブジェクトへのカスタム要素定義の追加を行います >>2。
[53] 辞書 ElementDefinitionOptions
>>2 は、
次のメンバーを持ちます。
[54] 辞書 ElementDefinitionOptions
のメンバー
extends
は、 DOMString
で、
必須です >>3。
extends
は、カスタム化組み込み要素における、
拡張する元の要素の名前を指定するものです。
指定する要素名は、正規の HTML要素の名前でなければなりません。
class MyElement extends HTMLElement { }; customElements.define ("my-element", MyElement);
[55] 本メソッドは、カスタム要素定義を作成し、 Window
に保存するものです。更に、
既に作成された要素があれば、作成した定義に添って要素の格上げも実行します。
[4] 本メソッドは、次のようにしなければなりません >>2。
[74] メンバーの処理とは、構築器について次のようにすることを言います。Get(構築器,
に設定します。例外が投げられれば、改めて投げ、ここで停止します。prototype
)Type
を適用した結果が Object
でなければ、connectedCallback
, disconnectedCallback
,
adoptedCallback
,
attributeChangedCallback
について順に、attributeChangedCallback
の項目が存在すれば、
[95] CustomElementsRegistry
オブジェクトは、
要素定義が走っているフラグを持ちます >>2。
[86] CustomElementsRegistry
オブジェクトは、
定義される名前の集合と定義される構築器の集合を持ちます
>>2。これらは define
が同じカスタム要素名やカスタム要素構築器で再帰的に呼び出されるのを防ぐためのものです。
[1] Add custom elements to HTML · whatwg/html@6e7eaa4 ( 版) https://github.com/whatwg/html/commit/6e7eaa4bd2912965fd83766f99f984f249531f3a
[57] Editorial: rename ElementRegistrationOptions to ElementDefinitionOptions ( (domenic著, )) https://github.com/whatwg/html/commit/a082daa4aa272f4eae77b67aa3116af482f03e5e
[58] Make custom element definition trigger in-document upgrades ( (domenic著, )) https://github.com/whatwg/html/commit/11bdd701e79c8dd6040586b5257eb01f3b620659
[75] Correctly find upgrade candidates during custom element definition ( (domenic著, )) https://github.com/whatwg/html/commit/edda04a44c64352387199ba6ed412d27ea305bfb
[46] Don't read observedAttributes if there is no attributeChangedCallback (domenic著, ) https://github.com/whatwg/html/commit/9ac1071abe7fca185604b56b89cb969ea34e39db
[25] Convert custom element callbacks to Web IDL callback types (domenic著, ) https://github.com/whatwg/html/commit/be055730a11a8f952feb8fdb73e7caa01460e5a4
[36] Fix customized built-in element "is" handling and reactions (domenic著, ) https://github.com/whatwg/html/commit/4e632a82728d68a8a6bd32f02083762b7792ddf7
[37] Handle reentrant custom element definition (domenic著, ) https://github.com/whatwg/html/commit/270b5f3e48411063c431fdf98dbe41766ddc20b1
[87] Disallow defining a custom element using HTMLElement or its subclasses (domenic著, ) https://github.com/whatwg/html/commit/69847259ecd9b3166b88e24ab2d5f6dd8bd59aec
[90] Disallow mismatches between custom element local names and brands (domenic著, ) https://github.com/whatwg/html/commit/0c45df84a6dab701e5a8e3eefd3d566ce3591737
[91] Disallow customElements.define being given named constructors (domenic著, ) https://github.com/whatwg/html/commit/f9c5830228859596589090ee41417798a2641875
[92] Implement new custom element adoption semantics (domenic著, ) https://github.com/whatwg/html/commit/feb77d09793a2ed8d49a6949dbca73eabb60ae79
[93] Clarify the order of saving custom element callbacks (domenic著, ) https://github.com/whatwg/html/commit/5ce53c222382bf884ab9e9879396543bf00d4fef
[94] Simplify the reentrance guard for custom element definition (domenic著, ) https://github.com/whatwg/html/commit/4bfa7130c7e2f953b07787d8a297eacdf51644e2
[84] Move the check on registering an element interface as a custom element (domenic著, ) https://github.com/whatwg/html/commit/9c9b08013261bfa93cce4cbddbcd03d866717e11
[88] Use new.target.prototype in HTML element constructors (domenic著, ) https://github.com/whatwg/html/commit/93ce959946249590515a3cf1a4b939a24605fc90
[89] window.customElements.define retrieves the lifetime callbacks in an odd order · Issue #3580 · whatwg/html () https://github.com/whatwg/html/issues/3580
[97] Editorial: make the type of custom element constructors stricter (yuki3著, ) https://github.com/whatwg/html/commit/f8bd887aff17a5ffaf8c50c76b937815c92fc5e4
[98] Make the type of custom element constructor stricter by yuki3 · Pull Request #3703 · whatwg/html () https://github.com/whatwg/html/pull/3703
createElement
では要素名をまず指定してis
メンバーにカスタム要素定義の名前を指定しますが、define
では逆に名前をまず指定して、extends
メンバーに要素名を指定します。