ExtendableCookieChangeEvent
基線 2025 *
新推出
注意:此功能僅在 Service Workers 中可用。
ExtendableCookieChangeEvent 介面是 Cookie Store API 的事件型別,當在 ServiceWorkerGlobalScope 上觸發的 cookiechange 事件匹配服務工作執行緒的 cookie 更改訂閱列表時,會傳遞此事件型別。Cookie 更改事件包含一個 cookie 和一個型別("changed" 或 "deleted")。
導致 ExtendableCookieChangeEvent 被分派的 Cookie 更改是:
- 一個 cookie 被新建立且未立即移除,或者 cookie 被替換。在這種情況下,
type為 "changed"。 - 一個 cookie 被新建立並立即移除。在這種情況下,
type為 "deleted"。 - 一個 cookie 被移除。在這種情況下,
type為 "deleted"。
建構函式
-
建立一個新的
ExtendableCookieChangeEvent。
例項屬性
此介面還繼承了 ExtendableEvent 的屬性。
-
返回一個包含已更改 cookie 的陣列。
-
返回一個包含已刪除 cookie 的陣列。
例項方法
此介面還繼承了 ExtendableEvent 的方法。
示例
在下面的示例中,我們使用 CookieStoreManager.getSubscriptions() 來獲取現有訂閱的列表。(在服務工作執行緒中,需要訂閱才能偵聽事件。)我們使用 CookieStoreManager.unsubscribe() 取消現有訂閱,然後使用 CookieStoreManager.subscribe() 訂閱名為 'COOKIE_NAME' 的 cookie。如果該 cookie 被更改,事件監聽器會將事件記錄到控制檯。這將是一個 ExtendableCookieChangeEvent 物件,其 changed 或 deleted 屬性將包含已修改的 cookie。
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 |
瀏覽器相容性
載入中…