cookies.set()

設定一個 cookie。此方法等效於在請求 URL 時發出 HTTP Set-Cookie 標頭。

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

語法

js
let setting = browser.cookies.set(
  details               // object
)

引數

details

一個包含您要設定的 cookie 詳細資訊的 object。它可以包含以下屬性

domain 可選

表示 cookie 域名的 string。如果省略,cookie 將成為一個僅限宿主的 cookie。

expirationDate 可選

一個 number,表示 cookie 的過期日期,即自 UNIX 紀元以來的秒數。可以包含毫秒作為小數部分。如果省略,cookie 將成為一個會話 cookie。

firstPartyDomain 可選

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

httpOnly 可選

一個 boolean,指定 cookie 是否被標記為 HttpOnly(true)或不是(false)。如果省略,預設為 false

name 可選

表示 cookie 名稱的 string。如果省略,預設為空。

partitionKey 可選

一個表示要設定 cookie 的 儲存分割槽object。包含此物件以在分割槽儲存中設定 cookie。此物件包含

topLevelSite 可選

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

path 可選

表示 cookie 路徑的 string。如果省略,預設為 URL 引數的 path 部分。

sameSite 可選

一個 cookies.SameSiteStatus 值,指示 cookie 的 SameSite 狀態。如果省略,預設為 unspecified

secure 可選

一個 boolean,指定 cookie 是否被標記為安全(true)或不是(false)。如果省略,預設為 false

storeId 可選

表示要在其中設定 cookie 的 cookie 儲存 ID 的 string。如果省略,cookie 將在當前執行上下文的 cookie 儲存中設定。

url

表示與 cookie 關聯的請求 URI 的 string。此值可能會影響建立的 cookie 的預設域名和路徑值。如果在 manifest 檔案中未指定此 URL 的宿主許可權,則方法呼叫將失敗。

value 可選

表示 cookie 值的 string。如果省略,預設為空。

返回值

一個 Promise,當成功時,它會解析為一個 cookies.Cookie 物件,其中包含有關已設定 cookie 的詳細資訊。

如果一個 URL 有多個同名 cookie,則返回路徑最長的 cookie。對於路徑長度相同的 cookie,則返回建立時間最早的 cookie。

注意: 在 Firefox 133 之前,當存在多個同名 cookie 時,Firefox 返回建立時間最早的 cookie。

如果請求的 cookie 無效或呼叫因其他原因失敗,則 Promise 將以錯誤訊息拒絕。

注意: 在 Firefox 145 之前,會建立無效的 cookie。

示例

此示例為活動標籤頁託管的文件設定一個 cookie

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

function setCookie(tabs) {
  browser.cookies.set({
    url: tabs[0].url,
    name: "favorite-color",
    value: "red",
  });
}

擴充套件程式示例

瀏覽器相容性

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