You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript设置的Cookie关闭浏览器即失效,如何最大化延长其有效期?

延长暗色模式Cookie保存时长的解决方案

你当前的Cookie没有指定有效期,默认属于会话Cookie,浏览器关闭后会被自动清理,这是失效的核心原因。只需给Cookie补充max-age或expires属性指定有效时长即可解决:

  • max-age:单位为秒,直接设置Cookie的有效时长,写法更简洁,主流浏览器均支持
  • expires:值为UTC格式的日期,仅用于兼容IE等极老旧浏览器

代码示例

推荐写法(max-age)

以下示例设置Cookie有效期为1年:

// 31536000秒 = 365天 * 24小时 * 60分钟 * 60秒
document.cookie = 'darkmode=false; SameSite=None; Secure; max-age=31536000';

兼容老旧浏览器写法(expires)

const expireDate = new Date();
// 有效期设置为1年
expireDate.setFullYear(expireDate.getFullYear() + 1);
document.cookie = `darkmode=false; SameSite=None; Secure; expires=${expireDate.toUTCString()}`;

注意事项

  • 目前主流浏览器对Cookie的最长有效时间限制为2年,设置时长超过2年的会被自动截断为2年,建议不要超过该阈值
  • Secure属性仅在HTTPS环境下生效,如果你的网站使用HTTP协议,需要删除该属性否则Cookie无法正常写入
  • 如果仅在同站使用该Cookie,建议把SameSite=None改为SameSite=Lax,安全性更高
  • 用户主动清理浏览器Cookie、浏览器启用自动清理临时数据规则的场景下,Cookie仍会提前失效,这类情况无法通过代码规避

内容的提问来源于stack exchange,提问作者paxxous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:09:04