cookies.onChanged
cookies API 的 onChanged 事件会在扩展程序可以访问的 cookie 被设置或移除时触发。
注意: 当 存储分区 激活时,cookies.Cookie.partitionKey 包含 cookie 存储分区的描述。修改 cookie 时,将此值传递给 cookies.set() 或 cookies.remove() 非常重要,以确保扩展程序能够与正确的 cookie 一起工作。
请注意,更新 cookie 的属性是一个分为两步的过程
- 首先,要更新的 cookie 会被移除,生成一个带有
overwrite的cookies.OnChangedCause的通知。 - 然后,会写入一个带有更新值的 cookie,生成一个带有
explicit的cookies.OnChangedCause的第二个通知。
语法
js
browser.cookies.onChanged.addListener(listener)
browser.cookies.onChanged.removeListener(listener)
browser.cookies.onChanged.hasListener(listener)
此 API 也可作为 browser.cookies.onChanged.* 使用。
事件有三个函数
addListener(listener)-
向此事件添加监听器。
removeListener(listener)-
停止监听此事件。
listener参数是要移除的侦听器。 hasListener(listener)-
检查
listener是否已为此事件注册。如果正在监听,则返回true,否则返回false。
addListener 语法
参数
监听器-
此事件发生时调用的函数。该函数会传递以下参数:
changeInfo-
一个包含发生更改的详细信息的
object。其属性为:已移除-
一个
boolean,如果 cookie 被移除则为true,否则为false。 -
一个
cookies.Cookie对象,包含有关已设置或已移除的 cookie 的信息。 cause-
一个
cookies.OnChangedCause值,表示 cookie 更改的根本原因。
示例
此示例监听 onChanged 事件,并记录 changeInfo 参数中的详细信息。
js
browser.cookies.onChanged.addListener((changeInfo) => {
console.log(
`Cookie changed: \n` +
` * Cookie: ${JSON.stringify(changeInfo.cookie)}\n` +
` * Cause: ${changeInfo.cause}\n` +
` * Removed: ${changeInfo.removed}`,
);
});
扩展程序示例
浏览器兼容性
加载中…
注意: 此 API 基于 Chromium 的 chrome.cookies API。本文档源自 Chromium 代码中的 cookies.json。