CookieStoreManager:subscribe() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

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

subscribe() 方法是 CookieStoreManager 接口的方法,用于订阅 ServiceWorkerRegistration 的 cookie 更改事件。

语法

js
subscribe(subscriptions)

参数

subscriptions

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

name

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

url

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

返回值

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

异常

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 存储 API
# dom-cookiestoremanager-subscribe

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。