新闻中心

JS如何操作Cookie_J*aScriptCookie读写与删除方法完整教程

2025-11-06
浏览次数:
返回列表
J*aScript可通过document.cookie读写Cookie,用于存储用户状态;写入时设置键值对及过期时间、路径等参数;读取需解析字符串并解码;删除则通过设置过期时间实现;建议封装工具函数统一操作。

js如何操作cookie_javascriptcookie读写与删除方法完整教程

J*aScript 可以直接在浏览器中操作 Cookie,用于存储少量用户数据,比如登录状态、偏好设置等。虽然现在有 localStorage 和 sessionStorage 更现代的替代方案,但在需要与服务器共享状态时,Cookie 依然是重要手段。下面详细介绍 JS 如何读取、写入和删除 Cookie。

写入 Cookie

使用 document.cookie 可以添加或修改 Cookie。注意:它不是普通变量,而是特殊的访问器属性,每次赋值都会新增或更新一个 Cookie。

基本语法:

document.cookie = "key=value; expires=expires_date; path=/; domain=example.com; secure; samesite=strict";

常用参数说明:

  • expires:过期时间,GMT 格式(可用 toUTCString());不设则为会话 Cookie,关闭浏览器即失效
  • max-age:以秒为单位的存活时间,比 expires 更现代
  • path:指定哪些路径可以访问该 Cookie,默认为当前路径
  • domain:指定域名,子域名可访问父域设置的 Cookie(需显式指定)
  • secure:仅在 HTTPS 下传输
  • samesite:防止 CSRF,可选 strictlaxnone

示例:设置一个7天后过期的用户偏好 Cookie

const date = new Date(); date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000)); const expires = "expires=" + date.toUTCString(); document.cookie = "theme=dark; " + expires + "; path=/";

读取 Cookie

document.cookie 在读取时返回所有同域 Cookie 的字符串,格式为 key1=value1; key2=value2,需要手动解析。

获取指定 Cookie 值的通用方法:

function getCookie(name) { const cookies = document.cookie.split('; '); for (let cookie of cookies) { const [key, value] = cookie.split('='); if (key === name) return decodeURIComponent(value); } return null; }

使用示例:

const theme = getCookie("theme"); // 返回 "dark" 或 null

注意:Cookie 值可能包含特殊字符,建议用 decodeURIComponent 解码,写入时对应使用 encodeURIComponent

BrandCrowd BrandCrowd

一个在线Logo免费设计生成器

BrandCrowd 200 查看详情 BrandCrowd

删除 Cookie

没有直接删除的方法。正确做法是设置 Cookie 的 expires 为过去的时间,或 max-age=0,并确保 path 和 domain 与原设置一致。

删除示例:

function deleteCookie(name, path = '/') { document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=" + path; }

调用:

deleteCookie("theme");

如果原 Cookie 设置了 domain 或 secure,删除时也应加上相同属性,否则可能无法清除。

实用封装:Cookie 操作工具函数

将常用操作封装成一个简洁的工具:

const Cookie = { set(name, value, days = 7, path = '/') { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); const expires = date.toUTCString(); document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + '; expires=' + expires + '; path=' + path; },

get(name) { const cookies = document.cookie.split('; '); for (let cookie of cookies) { const [key, value] = cookie.split('='); if (decodeURIComponent(key) === name) { return decodeURIComponent(value); } } return null; },

remove(name, path = '/') { this.set(name, '', -1, path); } };

使用方式:

Cookie.set('username', 'john_doe', 30); Cookie.get('username'); // "john_doe" Cookie.remove('username');

基本上就这些。掌握读、写、删三步,再注意编码和路径域的一致性,就能安全有效地用 JS 操作 Cookie。

以上就是JS如何操作Cookie_J*aScriptCookie读写与删除方法完整教程的详细内容,更多请关注其它相关文章!


# 移除  # 北京抖音seo运营  # 长春搜索关键词排名玩法  # 南通建设网站收费吗  # 重庆网站推广营销微信  # 北京关键词排名提升工具  # 做营销怎样引流推广客户  # 互点工具seo优化 site  # 传智播客seo视频教程  # 网络营销推广手段的特点  # 长春文具推广招聘网站  # 如何在  # 就能  # 未接  # 掩码  # 复选框  # js语法教程  # 键值  # 图中  # 数据处理  # 多个  # se  # 键值对  # ai  # session  # 工具  # 浏览器  # 编码  # cookie  # js  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  解决Django多数据库/多Schema环境下外键迁移问题  ArrayList与LinkedList核心操作的Big-O复杂度分析  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  Python实时数据流中的动态最值查找策略  Android Studio计算器C键功能异常排查与修复教程  Django通过AJAX异步上传图片并保存至模型的完整指南  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  深入理解J*a链表中的IPosition接口与使用  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  Log4j Console Appender性能瓶颈与高并发优化策略  印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】  Python中如何避免重复条件判断:利用数据结构实现动态逻辑  composer的"require-dev"部分是用来做什么的?  c++如何实现单例设计模式_c++线程安全的单例模式写法  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  网站内容防复制粘贴的实现策略与局限性  抓大鹅无需下载版 抓大鹅秒玩版入口  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明  J*aScript数组对象转换:按指定键分组与值收集  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  J*aScript中正确使用querySelectorAll与复杂CSS选择器  AO3最新官网入口公告_2025AO3镜像站实时查询方法  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用  AO3镜像入口大全 AO3网页版内容访问全集  快速CSGO开箱网站指南 CSGO开箱平台推荐  DLsite中文平台入口 DLsite官网内容在线查看  Bing引擎入口最新2025 Bing搜索免费官方登录  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|  Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  Go调试环境为何无法启动_Go调试器启动失败原因与解决策略  Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑  Golang如何安装Swagger工具_GoSwagger文档生成环境  CSS布局中意外空白:解决padding-top导致的顶部间距问题 

搜索