cookies.remove()

cookies API 的 remove() 方法可根據 cookie 的名稱和 URL 刪除一個 cookie。

要使用此方法,擴充套件程式必須具有 "cookies" 許可權和相關的宿主許可權。有關更多詳細資訊,請參閱 cookie 許可權

如果一個 URL 有多個同名 cookie,則刪除路徑最長的 cookie。對於路徑長度相同的 cookie,則刪除建立時間最早的 cookie。如果未找到匹配的 cookie,則返回 null

注意: 在 Firefox 133 之前,當有多個同名 cookie 時,Firefox 會刪除建立時間最早的 cookie。

這是一個非同步函式,返回一個 Promise

語法

js
let removing = browser.cookies.remove(
  details               // object
)

引數

details

一個包含用於標識要刪除的 cookie 的資訊的 object。它包含以下屬性:

firstPartyDomain 可選

一個 string,表示要刪除的 cookie 所關聯的第一方域。如果瀏覽器啟用了第一方隔離,則必須提供此屬性。請參閱 第一方隔離

name

一個 string,表示要刪除的 cookie 的名稱。

partitionKey 可選

一個 object,表示包含該 cookie 的 儲存分割槽。包含此物件以從分割槽儲存中刪除 cookie。此物件包含:

topLevelSite 可選

表示包含 cookie 的頂級網站儲存分割槽的第一個 URL 的 string

storeId 可選

一個 string,表示要查詢 cookie 的 cookie 儲存區 ID。如果未指定,則會在當前執行上下文的 cookie 儲存區中查詢 cookie。

url

一個 string,表示與 cookie 關聯的 URL。如果擴充套件沒有該 URL 的 主機許可權,則 API 呼叫會失敗。

返回值

一個 Promise,它會以一個包含已刪除 cookie 詳細資訊的 cookies.Cookie object 來 fulfilled。如果找不到與 details 引數匹配的 cookie,則 promise 會以 null fulfilled。如果呼叫失敗,promise 會被拒絕並帶有錯誤訊息。

示例

此示例嘗試刪除一個名為 "favorite-color" 的 cookie,其 URL 與活動標籤頁託管的文件的 URL 匹配。

js
function onRemoved(cookie) {
  console.log(`Removed: ${cookie}`);
}

function onError(error) {
  console.log(`Error removing cookie: ${error}`);
}

function removeCookie(tabs) {
  let removing = browser.cookies.remove({
    url: tabs[0].url,
    name: "favorite-color",
  });
  removing.then(onRemoved, onError);
}

let getActive = browser.tabs.query({ active: true, currentWindow: true });
getActive.then(removeCookie);

擴充套件程式示例

瀏覽器相容性

注意: 此 API 基於 Chromium 的 chrome.cookies API。本文件摘自 Chromium 程式碼中的 cookies.json