当前位置:首页 > 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(返回字符串,需手动解析)。

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,覆盖旧值。

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,总数量因浏览器而异。

js实现cookies

标签: jscookies
分享给朋友:

相关文章

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…