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
。