当前位置:首页 > 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
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…