当前位置:首页 > JavaScript

js实现cookies

2026-02-01 13:14:53JavaScript

设置Cookie

使用document.cookie属性设置Cookie,格式为键值对,可附加选项(如过期时间、路径等)。

document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
  • 参数说明
    • expires:设置过期时间(UTC格式)。
    • path:指定Cookie生效的路径(默认为当前路径)。
    • domain:指定域名(默认为当前域名)。
    • secure:仅通过HTTPS传输。
    • SameSite:限制跨站请求(Strict/Lax/None)。

读取Cookie

通过document.cookie获取所有Cookie(返回字符串,需手动解析)。

js实现cookies

const cookies = document.cookie; // 示例输出: "username=JohnDoe; theme=dark"

解析示例

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}
console.log(getCookie("username")); // 输出: JohnDoe

更新Cookie

直接重新设置同名Cookie,覆盖旧值。

js实现cookies

document.cookie = "username=JaneDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";

删除Cookie

设置过期时间为过去的时间,使Cookie失效。

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

封装工具函数

完整工具类示例

const CookieHelper = {
  set(name, value, days = 30, path = "/") {
    const expires = new Date(Date.now() + days * 864e5).toUTCString();
    document.cookie = `${name}=${encodeURIComponent(value)}; expires=${expires}; path=${path}`;
  },
  get(name) {
    const value = document.cookie.match(`(^|;)\\s*${name}\\s*=\\s*([^;]+)`);
    return value ? decodeURIComponent(value.pop()) : null;
  },
  remove(name, path = "/") {
    this.set(name, "", -1, path);
  }
};

// 使用示例
CookieHelper.set("theme", "dark");
console.log(CookieHelper.get("theme")); // 输出: dark
CookieHelper.remove("theme");

注意事项

  • 编码处理:使用encodeURIComponentdecodeURIComponent避免特殊字符问题。
  • HTTPOnly:JavaScript无法操作标记为HttpOnly的Cookie(仅服务端可设置)。
  • 大小限制:单个Cookie通常不超过4KB,总数量因浏览器而异。

标签: jscookies
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…