cookies.get()
cookies
API 的 get()
方法根据 cookie 的名称和 URL 检索有关单个 cookie 的信息。
如果给定 URL 存在多个具有相同名称的 cookie,将返回路径最长的那个 cookie。对于路径长度相同的 cookie,将返回创建时间最早的那个。如果找不到匹配的 cookie,则返回 null
。
这是一个返回 Promise
的异步函数。
语法
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 调用将失败。
返回值
浏览器兼容性
BCD tables only load in the browser
示例
此示例尝试获取与当前活动标签页的 URL 关联的名为“favorite-color”的 cookie:
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
。