cookies.set()
设置一个 cookie。此方法等效于在请求 URL 时发出 HTTP Set-Cookie 标头。
要使用此方法,扩展程序必须具有 "cookies" 权限和相关的宿主权限。有关更多详细信息,请参阅 cookie 权限。
语法
let setting = browser.cookies.set(
details // object
)
参数
details-
一个包含您要设置的 cookie 详细信息的
object。它可以包含以下属性domain可选-
表示 cookie 域名的
string。如果省略,cookie 将成为一个仅限宿主的 cookie。 expirationDate可选-
一个
number,表示 cookie 的过期日期,即自 UNIX 纪元以来的秒数。可以包含毫秒作为小数部分。如果省略,cookie 将成为一个会话 cookie。 firstPartyDomain可选-
表示 cookie 所属的第一方域名的
string。如果浏览器启用了第一方隔离,则必须提供此属性。请参阅 第一方隔离。 httpOnly可选-
一个
boolean,指定 cookie 是否被标记为 HttpOnly(true)或不是(false)。如果省略,默认为false。 name可选-
表示 cookie 名称的
string。如果省略,默认为空。 partitionKey可选-
一个表示要设置 cookie 的 存储分区的
object。包含此对象以在分区存储中设置 cookie。此对象包含topLevelSite可选-
表示包含 cookie 的顶级网站存储分区的第一个 URL 的
string。
path可选-
表示 cookie 路径的
string。如果省略,默认为 URL 参数的 path 部分。 sameSite可选-
一个
cookies.SameSiteStatus值,指示 cookie 的 SameSite 状态。如果省略,默认为unspecified。 secure可选-
一个
boolean,指定 cookie 是否被标记为安全(true)或不是(false)。如果省略,默认为false。 storeId可选-
表示要在其中设置 cookie 的 cookie 存储 ID 的
string。如果省略,cookie 将在当前执行上下文的 cookie 存储中设置。 url-
表示与 cookie 关联的请求 URI 的
string。此值可能会影响创建的 cookie 的默认域名和路径值。如果在 manifest 文件中未指定此 URL 的宿主权限,则方法调用将失败。 value可选-
表示 cookie 值的
string。如果省略,默认为空。
返回值
一个 Promise,当成功时,它会解析为一个 cookies.Cookie 对象,其中包含有关已设置 cookie 的详细信息。
如果一个 URL 有多个同名 cookie,则返回路径最长的 cookie。对于路径长度相同的 cookie,则返回创建时间最早的 cookie。
注意: 在 Firefox 133 之前,当存在多个同名 cookie 时,Firefox 返回创建时间最早的 cookie。
如果请求的 cookie 无效或调用因其他原因失败,则 Promise 将以错误消息拒绝。
注意: 在 Firefox 145 之前,会创建无效的 cookie。
示例
此示例为活动标签页托管的文档设置一个 cookie
let getActive = browser.tabs.query({ active: true, currentWindow: true });
getActive.then(setCookie);
function setCookie(tabs) {
browser.cookies.set({
url: tabs[0].url,
name: "favorite-color",
value: "red",
});
}
扩展程序示例
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.cookies API。本文档摘自 Chromium 代码中的 cookies.json。