CookieStoreManager: subscribe() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Service Workers 中可用。

CookieStoreManager 接口的 subscribe() 方法订阅 ServiceWorkerRegistration 以接收 cookie 变更事件。

语法

js
subscribe(subscriptions)

参数

subscriptions

一个对象数组,每个对象具有以下属性

name

一个包含 cookie 名称的字符串。

url

一个字符串,包含 cookie 作用域的 URL。此作用域可以比 service worker 注册的作用域更窄。

返回值

当订阅完成时,一个解析为 undefinedPromise

异常

TypeError

如果 subscriptions 中传入的 URL 与 service worker 注册的 scope 不匹配,则抛出此错误。

示例

在此示例中,由 registration 表示的 ServiceWorkerRegistration 正在订阅名为 "cookie1"、作用域为 "/path1" 的 cookie 的变更事件。

js
const subscriptions = [{ name: "cookie1", url: `/path1` }];
await registration.cookies.subscribe(subscriptions);

传入 subscribe() 方法的 URL 可以比 service worker 注册作用域更窄。在以下示例中,订阅是针对 /path/one/ 的,因此它将接收第一个 cookie 的变更事件,但不会接收第二个 cookie 的变更事件。

js
registration.cookies.subscribe([{ name: "cookie1", url: "/path/one/" }]); // subscription
cookieStore.set({ name: "cookie1", value: "cookie-value", path: "/path/one/" }); // receives a change event
cookieStore.set({ name: "cookie1", value: "cookie-value", path: "/path/two/" }); // does not receive a change event

规范

规范
Cookie Store API
# dom-cookiestoremanager-subscribe

浏览器兼容性