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 存储的所有浏览器标签页。

浏览器兼容性

示例

在以下代码片段中,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