cookies.onChanged

cookies API 的 onChanged 事件會在 cookie 設定或刪除時觸發。

請注意,更新 cookie 的屬性要透過以下兩個步驟實做:

  1. 首先,要更新的 cookie 會先被刪掉,並產生一個 overwritecookies.OnChangedCause 提醒。
  2. 接著,帶著更新數值的新 cookie 會被寫進去,並產生第二個 explicitcookies.OnChangedCause 提醒。

語法

js
browser.cookies.onChanged.addListener(listener);
browser.cookies.onChanged.removeListener(listener);
browser.cookies.onChanged.hasListener(listener);

此 API 也能以 browser.cookies.onChanged.* 運行。

此事件有以下函式:

addListener(callback)

給此事件添加監聽器(listener)。

removeListener(listener)

停止監聽此事件。listener 參數是要移除的監聽器。

hasListener(listener)

檢查此事件的 listener 是否被監聽了。若有監聽,回傳 true,否則回傳 false

addListener 語法

參數

callback

能被呼叫的 callback 函式會在此事件發生的時候觸發。函式會 passed 以下參數:

changeInfo

一個含有觸發事件資訊的 object。它有兩個屬性:

removed

一個 boolean。如果 cookie 被刪除則為 true,否則為 false

一個 cookies.Cookie 物件。含有被設定、或被刪除的 cookie 資訊。

cause

一個 cookies.OnChangedCause 數值。含有 cookie 被改變的潛在原因。

瀏覽器相容性

BCD tables only load in the browser

示例

本範例監聽 onChanged 事件並紀錄由 changeInfo 參數傳來的資訊:

js
browser.cookies.onChanged.addListener(function (changeInfo) {
  console.log(
    "Cookie changed: " +
      "\n * Cookie: " +
      JSON.stringify(changeInfo.cookie) +
      "\n * Cause: " +
      changeInfo.cause +
      "\n * Removed: " +
      changeInfo.removed,
  );
});

Example extensions

備註: 此 API 基於 Chromium 的 chrome.cookies API 而來,文件改作自 Chromium 程式碼裡的 cookies.json

Microsoft Edge 的相容資訊來自微軟公司,原文以創用 CC 姓名標示 3.0 美國版條款授權大眾使用。