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 |
浏览器兼容性
加载中…