CookieChangeEvent: changed 属性

基准线 2025
新推出

自 2025 年 6 月起,此功能已在最新的设备和浏览器版本中可用。此功能可能不适用于旧设备或浏览器。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

CookieChangeEvent 接口的只读属性 changed 返回一个已更改的 cookie 数组。

请注意,这不包括已设置过期日期(即过去)的 cookie,因为这些 cookie 会立即被删除。

一个包含已更改 cookie 的对象数组。每个对象都包含以下属性:

name

包含 cookie 名称的字符串。

value

包含 cookie 值的字符串。

包含 cookie 域名的字符串。

路径

包含 cookie 路径的字符串。

expires

一个时间戳,以 Unix 时间(毫秒)给出,包含 cookie 的过期日期。

secure

一个 boolean 值,指示 cookie 是否仅在安全上下文中(HTTPS 而不是 HTTP)使用。

sameSite

以下 SameSite 值之一:

"strict"

Cookie 将仅在第一方上下文中发送,而不会与第三方网站发起的请求一起发送。

"lax"

Cookie 不会在正常的跨站子请求中发送(例如,在第三方网站中加载图片或框架),但在用户在源站内导航时(例如,在点击链接时)会发送。

"none"

Cookie 将在所有上下文中发送。

partitioned

一个布尔值,指示 cookie 是否为分区 cookie(true)或不是(false)。有关更多信息,请参阅 具有独立分区状态的 Cookie (CHIPS)

示例

在此示例中,当 cookie 被设置时,事件监听器会将 changed 属性记录到控制台。该数组的第一个元素包含一个表示刚刚设置的 cookie 的对象。

js
cookieStore.addEventListener("change", (event) => {
  console.log(event.changed[0]);
});

const one_day = 24 * 60 * 60 * 1000;
cookieStore.set({
  name: "cookie1",
  value: "cookie1-value",
  expires: Date.now() + one_day,
  domain: "example.com",
});

规范

规范
Cookie Store API
# dom-cookiechangeevent-changed

浏览器兼容性