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 (en-US) 物件。含有被設定、或被刪除的 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 美國版條款授權大眾使用。