JavaScript 操作 Cookie 完整指南:创建、读取、修改与删除

作者:代码拾荒

时间:2026-10-26

浏览:380

本文详解 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 的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章