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。