cookies.remove()
cookies API 的 remove() 方法可根据 cookie 的名称和 URL 删除一个 cookie。
要使用此方法,扩展程序必须具有 "cookies" 权限和相关的宿主权限。有关更多详细信息,请参阅 cookie 权限。
如果一个 URL 有多个同名 cookie,则删除路径最长的 cookie。对于路径长度相同的 cookie,则删除创建时间最早的 cookie。如果未找到匹配的 cookie,则返回 null。
注意: 在 Firefox 133 之前,当有多个同名 cookie 时,Firefox 会删除创建时间最早的 cookie。
这是一个异步函数,返回一个 Promise。
语法
let removing = browser.cookies.remove(
details // object
)
参数
details-
一个包含用于标识要删除的 cookie 的信息的
object。它包含以下属性:firstPartyDomain可选-
一个
string,表示要删除的 cookie 所关联的第一方域。如果浏览器启用了第一方隔离,则必须提供此属性。请参阅 第一方隔离。 name-
一个
string,表示要删除的 cookie 的名称。 partitionKey可选-
一个
object,表示包含该 cookie 的 存储分区。包含此对象以从分区存储中删除 cookie。此对象包含:topLevelSite可选-
表示包含 cookie 的顶级网站存储分区的第一个 URL 的
string。
storeId可选-
一个
string,表示要查找 cookie 的 cookie 存储区 ID。如果未指定,则会在当前执行上下文的 cookie 存储区中查找 cookie。 url-
一个
string,表示与 cookie 关联的 URL。如果扩展没有该 URL 的 主机权限,则 API 调用会失败。
返回值
一个 Promise,它会以一个包含已删除 cookie 详细信息的 cookies.Cookie object 来 fulfilled。如果找不到与 details 参数匹配的 cookie,则 promise 会以 null fulfilled。如果调用失败,promise 会被拒绝并带有错误消息。
示例
此示例尝试删除一个名为 "favorite-color" 的 cookie,其 URL 与活动标签页托管的文档的 URL 匹配。
function onRemoved(cookie) {
console.log(`Removed: ${cookie}`);
}
function onError(error) {
console.log(`Error removing 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。