cookies.getAll()

getAll() 方法是 cookies API 的一部分,用于检索与所提供详细信息匹配的所有 cookie。

要使用此方法,扩展程序必须具有 "cookies" 权限和相关的宿主权限。有关更多详细信息,请参阅 cookie 权限

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

语法

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

参数

details

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

domain 可选

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

firstPartyDomain 可选

一个 string,表示要检索的 cookie 所关联的同级域名。

如果浏览器启用了同级隔离,则必须提供此属性。如果传递 null,则结果中将包含 firstPartyDomain 具有任何值以及未设置 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。

session 可选

一个 boolean — 按 session 属性过滤 cookie,允许您过滤会话 cookie 或持久 cookie。

storeId 可选

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

url 可选

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

返回值

一个 Promise,该 Promise 将以一个 cookies.Cookie 对象数组的形式兑现,这些对象匹配 details 参数中给出的属性。仅返回未过期的 cookie。返回的 cookie 按路径长度排序,从长到短。如果多个 cookie 具有相同的路径长度,则最先创建的 cookie 排在前面。

注意: 在 Firefox 133 之前,Firefox 按创建时间排序返回 cookie,最早创建的排在前面。

示例

此示例获取浏览器存储的所有名为“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