cookies.getAll()

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

这是一个返回 Promise 的异步函数。

语法

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

参数

details

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

domain 可选

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

firstPartyDomain 可选

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

如果浏览器启用了第一方隔离,则必须提供此属性。但是,在这种情况下,你可以将这个值设为 null。如果这样做,那么结果中将包括 firstPartyDomain 值为任意或为空的 Cookie。请参见第一方隔离

name 可选

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

partitionKey 可选

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

  • 如果省略,则仅返回未分区存储中的 Cookie。
  • 如果提供但未指定 topLevelSite,则返回分区和未分区存储中的所有 Cookie。
  • 如果提供并指定了 topLevelSite,则返回指定分区存储中的 Cookie。

此对象包含:

topLevelSite 可选

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

path 可选

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

secure 可选

一个 boolean,根据其 secure 属性过滤 Cookie,允许你过滤安全 Cookie 和非安全 Cookie。

session 可选

一个 boolean,根据其 session 属性过滤 Cookie,允许你过滤会话 Cookie 和持久性 Cookie。

storeId 可选

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

url 可选

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

返回值

一个 Promise,其会兑现一个 cookies.Cookie 对象数组,这些对象与 details 参数中给定的属性匹配。仅返回未过期的 Cookie。返回的 Cookie 将按路径长度排序,从最长到最短。如果多个 Cookie 的路径长度相同,则创建时间最早的将排在最前面。

浏览器兼容性

BCD tables only load in the browser

示例

在下面的代码片段中,我们调用函数来获取浏览器当前存储的所有名称为“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