cookies.remove()
cookies
API 的 remove()
方法根据 cookie 的名称和 URL 删除一个 cookie。
只有在你的 manifest.json 文件中包含“cookies” API 权限和给定 URL 的主机权限时,此调用才能成功。
这是一个返回 Promise
的异步函数。
语法
let removing = browser.cookies.remove(
details // 对象
)
参数
details
-
一个
object
,包含识别要删除的 cookie 的信息。它包含以下属性:firstPartyDomain
可选-
一个
string
,表示与要删除的 cookie 关联的第一方域。如果浏览器启用了第一方隔离,则必须提供此属性。请参见第一方隔离。 name
-
一个
string
,表示要删除的 cookie 的名称。 partitionKey
可选-
一个
object
,表示包含该 cookie 的存储分区。包括此对象以从分区存储中删除 cookie。此对象包含:topLevelSite
可选-
一个
string
,表示包含该 cookie 的顶级站点存储分区的第一方 URL。
storeId
可选-
一个
string
,表示查找 cookie 的 cookie 存储的 ID。如果未指定,默认情况下将在当前执行上下文的 cookie 存储中查找 cookie。 url
-
一个
string
,表示与该 cookie 关联的 URL。如果扩展程序没有此 URL 的主机权限,则 API 调用将失败。
返回值
一个 Promise
,其会兑现一个包含有关已删除 cookie 的详细信息的 cookies.Cookie
对象。如果找不到与 details
参数匹配的 cookie,则该 Promise 将兑现 null
。如果由于任何原因导致调用失败,则 Promise 将被拒绝,并带有错误消息。
浏览器兼容性
示例
此示例尝试删除名为“favorite-color”的 cookie,其 URL 与当前活动标签页托管的文档的 URL 匹配:
function onRemoved(cookie) {
console.log(`已删除:${cookie}`);
}
function onError(error) {
console.log(`删除 cookie 时出错:${error}`);
}
function removeCookie(tabs) {
let removing = browser.cookies.remove({
url: tabs[0].url,
name: "favorite-color",
});
removing.then(onRemoved, onError);
}
let getActive = browser.tabs.query({ active: true, currentWindow: true });
getActive.then(removeCookie);
示例扩展
备注:
此 API 基于 Chromium 的 chrome.cookies
API。该文档衍生自 Chromium 代码中的 cookies.json
。