cookies.set()
設定一個 cookie。此方法等效於在請求 URL 時發出 HTTP Set-Cookie 標頭。
要使用此方法,擴充套件程式必須具有 "cookies" 許可權和相關的宿主許可權。有關更多詳細資訊,請參閱 cookie 許可權。
語法
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
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。