cookies.CookieStore

cookies API 的 CookieStore 类型用于表示浏览器中的一个 cookie 存储。

不同浏览模式的窗口可能会使用不同的 cookie 存储。例如,隐私浏览/无痕模式窗口使用的 cookie 存储与非无痕/隐私窗口使用的 cookie 存储是分开的。此外,在 Firefox 中使用容器标签页时,一个窗口可能会有多个 cookie 存储。

有关 cookie 存储的更多信息,请参见使用 Cookies API

类型

此类型的值是对象,可以包含以下属性:

id

一个表示 cookie 存储的唯一标识符的 string

incognito 可选

一个布尔值,指示这是一个无痕 cookie 存储。此属性在 Chrome 或 Safari 中不受支持。不过,由于 Chrome 中无痕 cookie 存储的 id 值始终为“1”,你可以借此来识别这一存储。

tabIds

一个整型数(integer)的数组,标识共享此 cookie 存储的所有浏览器标签页。

浏览器兼容性

BCD tables only load in the browser

示例

在以下代码片段中,cookies.getAllCookieStores() 方法用于检索浏览器中当前可用的所有 cookie 存储,并打印出每个 cookie 存储的 ID 以及当前共享对应的 cookie 存储的标签页。

js
function logStores(cookieStores) {
  for (const store of cookieStores) {
    console.log(`Cookie 存储:${store.id}\n标签页 ID:${store.tabIds}`);
  }
}

browser.cookies.getAllCookieStores().then(logStores);

以下代码片段获取所有 cookie 存储,然后记录存储的总数以及其中多少个存储是无痕模式的。

js
browser.cookies.getAllCookieStores().then((stores) => {
  const incognitoStores = stores.map((store) => store.incognito);
  console.log(
    `${stores.length} 个 cookie 存储中有 ${incognitoStores.length} 个是无痕模式的。`,
  );
});

备注:此 API 基于 Chromium 的 chrome.cookies API。本文档源自 Chromium 代码中的 cookies.json