cookies.get()

get() 方法是 cookies API 的一种方法,用于获取有关单个 cookie 的信息,包括其名称和 URL。

如果对于给定的 URL,存在多个具有相同名称的 cookie,则将返回路径最长的那个。对于路径长度相同的 cookie,将返回创建时间最早的那个。如果找不到匹配的 cookie,则返回 null

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

语法

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

参数

details

一个包含可用于匹配要检索的 cookie 的详细信息的 object。它可以包含以下属性

firstPartyDomain 可选

一个 string,表示与要检索的 cookie 关联的第一方域。如果浏览器启用了第一方隔离,则必须提供此属性。请参阅 第一方隔离

name

一个 string,表示要检索的 cookie 的名称。

partitionKey 可选

一个 object,表示包含 cookie 的 存储分区。将此对象与 topLevelSite 一起包含,以从分区存储中获取 cookie。否则,将从未分区存储中返回 cookie。此对象包含

topLevelSite 可选

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

storeId 可选

一个 string,表示要在其中查找 cookie 的 cookie 存储 的 ID(由 cookies.getAllCookieStores() 返回)。默认情况下,将使用当前执行上下文的 cookie 存储。

url

一个 string,表示与要检索的 cookie 关联的 URL。此参数可以是完整的 URL,在这种情况下,将忽略 URL 路径后面的任何数据(例如查询字符串)。如果在扩展的 清单文件 中未指定对该 URL 的 主机权限,API 调用将失败。

返回值

一个 Promise,它将使用一个 Cookie 对象来完成,该对象包含有关 cookie 的详细信息,或者如果未找到 cookie,则为 null

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

示例

此示例尝试获取名为“favorite-color”的 cookie,该 cookie 与当前活动选项卡的 URL 关联

js
function logCookie(cookie) {
  if (cookie) {
    console.log(cookie.value);
  }
}

function getCookie(tabs) {
  let getting = browser.cookies.get({
    url: tabs[0].url,
    name: "favorite-color",
  });
  getting.then(logCookie);
}

let getActive = browser.tabs.query({
  active: true,
  currentWindow: true,
});
getActive.then(getCookie);

示例扩展

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