--- title: Clients.claim() slug: Web/API/Clients/claim tags: - API - Clients - Method - Reference - Service Workers - ServiceWorker - claim translation_of: Web/API/Clients/claim ---
{{APIRef("Service Worker Clients")}}
{{domxref("Clients")}} インターフェイスの claim()
メソッドを使用すると、アクティブなサービスワーカーが自身のスコープ({{domxref("ServiceWorkerRegistration.scope", "scope")}})内のすべてのクライアントのコントローラー({{domxref("ServiceWorkerContainer.controller", "controller")}})として自分自身を設定できます。 これにより、このサービスワーカーによって制御されるようになるクライアントの {{domxref("ServiceWorkerContainer","navigator.serviceWorker")}} で "controllerchange"
イベントがトリガーされます。
サービスワーカーが最初に登録されると、ページは次に読み込まれるまでそれを使用しません。 claim()
メソッドを使用すると、これらのページがすぐに制御されます。 これにより、サービスワーカーがネットワークを介して、または別のサービスワーカーを介して定期的に読み込まれるページを制御することに注意してください。
await clients.claim();
なし。
undefined
に解決される {{jsxref("Promise")}}。
次の例では、サービスワーカーの "activate"
イベントリスナー内で claim()
を使用しているため、同じスコープに読み込まれたクライアントは、フェッチがこのサービスワーカーを通過する前に再読み込みする必要がありません。
self.addEventListener('activate', event => { event.waitUntil(clients.claim()); });
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('Service Workers', '#clients-claim', 'claim()')}} | {{Spec2('Service Workers')}} | 初期定義 |
{{Compat("api.Clients.claim")}}