JavaScript 操作 Cookie 完整指南:创建、读取、修改与删除
本文详解 JavaScript 中 Cookie 的操作方法。涵盖 Cookie 概念、基于 document.cookie 的创建、读取、修改及删除技巧,并提供设置过期时间与路径的函数实现,帮助开发者掌握客户端数据存储核心技能。
Cookie 主要用于在 Web 页面中存储用户相关信息。
一、什么是 Cookie?
Cookie 是存储在计算机文本文件中的一些数据。
当 Web 服务器向浏览器发送页面时,连接关闭后,服务端通常不会保留用户信息。
Cookie 的作用正是解决“如何记录客户端用户信息”的问题:
- 当用户访问 Web 页面时,其名字可以保存在 Cookie 中。
- 当用户再次访问该页面时,系统可以从 Cookie 中读取用户的访问记录。
Cookie 以名/值对的形式存储,例如:
username=John Doe
当浏览器向服务器请求 Web 页面时,与该页面相关的 Cookie 会被添加到请求中,服务器借此获取用户信息。
二、创建 Cookie
JavaScript 可以通过 document.cookie 属性来创建、读取及删除 Cookie。
在 JavaScript 中,创建 Cookie 的基本方式如下:
document.cookie="username=John Doe";您还可以为 Cookie 设置过期时间(使用 UTC 或 GMT 时间)。默认情况下,Cookie 会在浏览器关闭时被删除:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";您可以使用 path 参数指定 Cookie 的路径。默认情况下,Cookie 仅属于当前页面。
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";创建 Cookie 值的函数
首先,我们编写一个用于存储访问者名字的函数:
该函数设置了 Cookie 的名称、值以及过期时间。
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires; //cookie 的名称为 cname,cookie 的值为 cvalue,并设置了 cookie 的过期时间 expires。
}调用方法:setCookie(cookie名称,cookie数值,过期时间(天))
setCookie('sex','男', 10);三、读取 Cookie
document.cookie 属性看似普通文本字符串,实则并非如此。
即使您在 document.cookie 中写入完整的 Cookie 字符串,重新读取时,Cookie 信息仍以名/值对的形式展示。
如果您设置了新的 Cookie,旧的 Cookie 不会被覆盖。新 Cookie 将追加到 document.cookie 中,因此重新读取 document.cookie 时,您将看到如下数据:
cookie1=value; cookie2=value;在 JavaScript 中,可以使用以下代码来读取 Cookie:
var x = document.cookie;读取 Cookie 值的函数
接下来,我们创建一个函数用于返回指定 Cookie 的值:
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}调用方法:getCookie(cookie名称)
getCookie('username');四、修改 Cookie
在 JavaScript 中,修改 Cookie 与创建类似,旧的 Cookie 将被覆盖。
document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";五、删除 Cookie
删除 Cookie 非常简单,只需将 expires 参数设置为过去的某个时间即可。例如,设置为 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";注意,删除时不必指定 Cookie 的值。
移除 Cookie 函数
function removeCookie(key) {
setCookie(key, '', -1); //cookie的过期时间设为昨天
}调用方法:removeCookie(cookie名称)
removeCookie('age');六、判断浏览器是否启用 Cookie
var cookiesEnabled = (function(){
var id = new Date().getTime();
document.cookie = '__cookieprobe=' + id + ';path=/';
return (document.cookie.indexOf(id) !== -1);
})();到此这篇关于 JavaScript 操作 Cookie 的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持本站。
JavaScript异步发送HTTP请求时怎么优雅地处理错误
2026-11-05 17:10:44
5款主流JS在线运行工具对比:CodePen、JSFiddle与StackBlitz怎么选
2026-11-05 17:04:04
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
