このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Window: customElements プロパティ

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。

customElementsWindow インターフェイスの読み取り専用プロパティで、グローバルな CustomElementRegistry オブジェクトへの参照を返します。これにより、新しいカスタム要素を登録したり、以前に登録したカスタム要素に関する情報を取得したりすることができます。

グローバルレジストリーはデフォルトでカスタム要素の登録に使用されますが、シャドウルートでは、定義された要素名における潜在的な衝突を避けるために、スコープ付きカスタム要素レジストリーを使用することができます。

CustomElementRegistry です。

基本的な使い方

このプロパティが使われている最も一般的な例は、新しいカスタム要素を定義・登録するために CustomElementRegistry.define() メソッドにアクセスすることです。

例えば次のようにします。

js
let customElementRegistry = window.customElements;
customElementRegistry.define("my-custom-element", MyCustomElement);

なお、カスタム要素のクラスは、以下に示すように、通常は define() の呼び出しの直後に定義されます。

js
customElements.define(
  "element-details",
  class extends HTMLElement {
    constructor() {
      super();
      const template = document.getElementById("element-details-template");
      const shadowRoot = this.attachShadow({ mode: "open" }).appendChild(
        document.importNode(template.content, true),
      );
    }
  },
);

web-components-examples リポジトリーにより多くの使用例がありますので参照してください。

仕様書

仕様書
HTML
# dom-window-customelements

ブラウザーの互換性