--- title: CustomElementRegistry slug: Web/API/CustomElementRegistry tags: - API - CustomElementRegistry - Experimental - Interface - Landing - Webコンポーネント - custom elements - レファレンス - 試験的 translation_of: Web/API/CustomElementRegistry ---
{{DefaultAPISidebar("Web Components")}}
CustomElementRegistry
インターフェイスはカスタムエレメントの登録と、登録された要素を紹介するためのメソッドを提供します。このインスタンスを取得するには、{{domxref("window.customElements")}} プロパティを使います。
undefined
を返す。以下のコードは我々の word-count-web-component という例 (こちらのライブデモを見てください) から持ってきています。メモ: クラスを生成した後カスタムエレメント定義するための {{domxref("CustomElementRegistry.define()")}} メソッドの使用方法。
// 要素のクラスを生成 class WordCount extends HTMLParagraphElement { constructor() { // コンストラクタ内ではまずはじめに必ず super をコールする super(); // 親要素の要素内の count というワード var wcParent = this.parentNode; function countWords(node){ var text = node.innerText || node.textContent return text.split(/\s+/g).length; } var count = 'Words: ' + countWords(wcParent); // shadow root を生成 var shadow = this.attachShadow({mode: 'open'}); // テキストノードを生成し、count というワードを追加 var text = document.createElement('span'); text.textContent = count; // shadow root に追加 shadow.appendChild(text); // 要素のコンテンツが変化した時、count を更新 setInterval(function() { var count = 'Words: ' + countWords(wcParent); text.textContent = count; }, 200) } } // 新しい要素を定義 customElements.define('word-count', WordCount, { extends: 'p' });
メモ: CustomElementsRegistry は {{domxref("Window.customElements")}} プロパティを通して利用可能です。
仕様 | ステータス | コメント |
---|---|---|
{{SpecName("HTML WHATWG", "custom-elements.html#customelementregistry", "CustomElementRegistry")}} | {{Spec2("HTML WHATWG")}} | 初期定義。 |
{{Compat("api.CustomElementRegistry")}}