新闻中心
JS如何操作Cookie_J*aScriptCookie读写与删除方法完整教程
J*aScript可通过document.cookie读写Cookie,用于存储用户状态;写入时设置键值对及过期时间、路径等参数;读取需解析字符串并解码;删除则通过设置过期时间实现;建议封装工具函数统一操作。

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,可选
strict、lax、none
示例:设置一个7天后过期的用户偏好 Cookie
const date = new D
ate();
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
一个在线Logo免费设计生成器
200
查看详情
删除 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导致的顶部间距问题


2025-11-06
浏览次数:次
返回列表