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

View in English Always switch to English

ExtendableCookieChangeEvent

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more browser support for this feature? Tell us why.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内でのみ利用可能です。

ExtendableCookieChangeEventクッキーストアー API のインターフェイスで、サービスワーカーのクッキー変更サブスクリプションリストに一致するクッキーの変更が発生した際に、ServiceWorkerGlobalScope で発生する cookiechange イベントに渡されるイベント型です。Cookie の変更イベントは、Cookie と種類 ("changed" または "deleted") からなります。

ExtendableCookieChangeEvent を発生させる Cookie の変更は、以下のものがあります。

  • Cookie が新規作成され、すぐには削除されなかった場合、または置き換えられた場合。 この場合の type は "changed" です。
  • Cookie が新規作成され、すぐに削除された場合。 この場合の type は "deleted" です。
  • Cookie が削除された場合。この場合の type は "deleted" です。
Event ExtendableEvent ExtendableCookieChangeEvent

コンストラクター

ExtendableCookieChangeEvent()

新しい ExtendableCookieChangeEvent を生成します。

インスタンスプロパティ

このインターフェイスには ExtendableEvent から継承したプロパティもあります。

ExtendableCookieChangeEvent.changed 読取専用

変更された Cookie が格納された配列を返します。

ExtendableCookieChangeEvent.deleted 読取専用

削除された Cookie が格納された配列を返します。

インスタンスメソッド

このインターフェイスには ExtendableEvent から継承したメソッドもあります。

以下の例では、CookieStoreManager.getSubscriptions() を用いて現在ある購読のリストを取得します。(サービスワーカーでは、イベントを監視するには購読が必要です) CookieStoreManager.unsubscribe() を用いて既存の購読を解除し、CookieStoreManager.subscribe() を用いて名前が 'COOKIE_NAME' である Cookie を購読します。この Cookie が変更されると、イベントリスナーがイベントをコンソールに記録します。これは、変化が起きた Cookie が格納された changed プロパティまたは deleted プロパティを持つ ExtendableCookieChangeEvent オブジェクトです。

js
self.addEventListener("activate", (event) => {
  event.waitUntil(async () => {
    const subscriptions = await self.registration.cookies.getSubscriptions();

    await self.registration.cookies.unsubscribe(subscriptions);

    await self.registration.cookies.subscribe([
      {
        name: "COOKIE_NAME",
      },
    ]);
  });
});

self.addEventListener("cookiechange", (event) => {
  console.log(event);
});

仕様書

仕様書
Cookie Store API
# ExtendableCookieChangeEvent

ブラウザーの互換性