このインターフェイスは、カスタム要素の登録と、登録された要素を照会するためのメソッドを提供します。このインスタンスを取得するには、window.customElements プロパティを使用してください。
// 要素のクラスを作成 class WordCount extends HTMLParagraphElement { constructor() { // コンストラクターでは常に super を最初に呼び出してください super(); // 要素の親要素の語数を数える var wcParent = this.parentNode; function countWords(node){ var text = node.innerText || node.textContent return text.split(/\s+/g).length; } var count = 'Words: ' + countWords(wcParent); // シャドウルートを生成 var shadow = this.attachShadow({mode: 'open'}); // テキストノードを生成し、語数を追加 var text = document.createElement('span'); text.textContent = count; // シャドウルートに追加 shadow.appendChild(text); // 要素の内容が変化したとき、語数を更新 setInterval(function() { var count = 'Words: ' + countWords(wcParent); text.textContent = count; }, 200) } } // 新しい要素を定義 customElements.define('word-count', WordCount, { extends: 'p' });
Note: CustomElementsRegistry は window.customElements プロパティを通して利用可能です。
表示内容: |
表示内容: |