cookies.getAll()

getAll() 方法是 cookies API 的方法,用于检索与给定信息匹配的单个 Cookie 存储中的所有 Cookie。

这是一个异步函数,它返回一个 Promise

语法

js
let getting = browser.cookies.getAll(
  details                // object
)

参数

details

一个 object,包含可用于匹配要检索的 Cookie 的详细信息。包含的属性如下(有关这些属性的更多信息,请参见 Cookie 类型

domain 可选

一个 string,表示 Cookie 必须与之关联的域(它们可以与该确切域或其子域之一关联)。

firstPartyDomain 可选

一个 string,表示与要检索的 Cookie 关联的第一方域。

如果浏览器启用了第一方隔离,则必须提供此属性。但是,您可以在这种情况下传递 null。如果您这样做,则具有任何 firstPartyDomain 值的 Cookie,以及根本没有设置 firstPartyDomain 的 Cookie,都将包含在结果中。请参见 第一方隔离

name 可选

一个 string,表示 Cookie 应具有的名称。

partitionKey 可选

一个 object,定义要从哪个 存储分区 返回 Cookie

  • 如果省略,则仅返回来自未分区的存储的 Cookie。
  • 如果包含但不包含 topLevelSite,则返回来自分区和未分区存储的所有 Cookie。
  • 如果包含并指定了 topLevelSite,则返回来自指定分区存储的 Cookie。

此对象包含

topLevelSite 可选

一个 string,表示包含 Cookie 的顶级站点存储分区的第三方 URL。

path 可选

一个 string,表示路径 — Cookie 的路径必须与之相同。

secure 可选

一个 boolean — 通过 Cookie 的 secure 属性筛选 Cookie,允许您筛选安全 Cookie 与非安全 Cookie。

session 可选

一个 boolean — 通过 Cookie 的 session 属性筛选 Cookie,允许您筛选会话 Cookie 与持久性 Cookie。

storeId 可选

一个 string,表示要从中检索 Cookie 的 Cookie 存储。如果省略,将使用当前执行上下文的 Cookie 存储。

url 可选

一个 string,表示检索的 Cookie 必须与之关联的 URL。

返回值

一个 Promise,它将与一个 cookies.Cookie 对象数组一起完成,这些对象与 details 参数中给定的属性匹配。仅返回未过期的 Cookie。返回的 Cookie 将按路径长度排序,最长的排在最前面。如果多个 Cookie 具有相同的路径长度,则创建日期最早的 Cookie 将排在最前面。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

在以下代码段中,我们正在调用一个函数来获取浏览器当前存储的所有名称为“favorite-color”的 Cookie。当结果返回时,我们将每个结果的值打印到控制台。

js
function logCookies(cookies) {
  for (const cookie of cookies) {
    console.log(cookie.value);
  }
}

browser.cookies
  .getAll({
    name: "favorite-color",
  })
  .then(logCookies);

示例扩展

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