ExtendableCookieChangeEvent
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
「Cookie Store API」の ExtendableCookieChangeEvent
インターフェイスは、Cookie が何か変更された時 ServiceWorkerRegistration.oncookiechange()
に渡されるイベント型です。Cookie の変更イベントは、Cookie と種類 ("changed"
または "deleted"
) からなります。
ExtendableCookieChangeEvent
を発生させる Cookie の変更は、以下のものがあります。
- Cookie が新規作成され、すぐには削除されません。この場合の
type
は"changed"
です。 - Cookie が新規作成され、すぐに削除されます。この場合の
type
は"deleted"
です。 - Cookie が削除されます。この場合の
type
は"deleted"
です。
メモ: 同じ名前・ドメイン・パスの他の Cookie が挿入されることにより置き換えられる Cookie は無視され、変更イベントを発生させません。
コンストラクター
-
新しい
ExtendableCookieChangeEvent
を生成します。
インスタンスプロパティ
このインターフェイスは、ExtendableEvent
からもプロパティを継承します。
-
変更された Cookie が格納された配列を返します。
-
削除された Cookie が格納された配列を返します。
例
以下の例では、CookieStoreManager.getSubscriptions()
を用いて現在ある購読のリストを取得します。(サービスワーカーでは、イベントを監視するには購読が必要です) CookieStoreManager.unsubscribe()
を用いて既存の購読を解除し、CookieStoreManager.subscribe()
を用いて名前が 'COOKIE_NAME'
である Cookie を購読します。この Cookie が変更されると、イベントリスナーがイベントをコンソールに記録します。これは、変化が起きた Cookie が格納された changed
プロパティまたは deleted
プロパティを持つ ExtendableCookieChangeEvent
オブジェクトです。
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);
});
仕様書
Specification |
---|
Cookie Store API # ExtendableCookieChangeEvent |
ブラウザーの互換性
BCD tables only load in the browser