cookies.get()

cookies API 的 get() 方法根据 cookie 的名称和 URL 检索有关单个 cookie 的信息。

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

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

语法

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

参数

details

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

firstPartyDomain 可选

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

name

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

partitionKey 可选

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

topLevelSite 可选

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

storeId 可选

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

url

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

返回值

一个 Promise,其会兑现一个包含有关 cookie 的详细信息的 Cookie 对象,或者如果未找到 cookie,则兑现 null

浏览器兼容性

BCD tables only load in the browser

示例

此示例尝试获取与当前活动标签页的 URL 关联的名为“favorite-color”的 cookie:

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