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

View in English Always switch to English

ServiceWorkerContainer.controller

Baseline 広く利用可能

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

controllerServiceWorkerContainer インターフェイスの読み取り専用プロパティで、ServiceWorker オブジェクトの状態が activating または activated ならそれ (ServiceWorkerRegistration.active で返されるのと同じオブジェクト) を返します。このプロパティはリクエストが強制リフレッシュ(Shift + リフレッシュ)やアクティブワーカーがない場合は null を返します。

ServiceWorker オブジェクト。

js
if ("serviceWorker" in navigator) {
  // 1 回限りのチェックを行って、サービスワーカーが制御しているかどうかを確認します。
  if (navigator.serviceWorker.controller) {
    console.log(
      `このページを現在制御しているもの: ${navigator.serviceWorker.controller}`,
    );
  } else {
    console.log("このページは現在サービスワーカーによって制御されていません。");
  }
} else {
  console.log("サービスワーカーをサポートしていません。");
}

仕様書

仕様書
Service Workers Nightly
# navigator-service-worker-controller

ブラウザーの互換性