Javascript 对cookie操作详解及实例

yizhihongxing

Javascript 对cookie操作详解及实例

什么是cookie

Cookie 是一种存储在用户计算机上的小数据文件,它通常由网站在后端生成,通过浏览器发送到前端,并在前端保存。然后,在用户下次访问该网站时,该网站可以再次检索这些 cookie,并计算出该用户的特定信息,例如用户首选语言、购物车中的项目等。通常情况下,cookie 用于存储与特定网站相关的用户偏好和其他信息。

Javascript 对cookie的操作

使用JavaScript 可以对 cookie 进行以下操作:

  • 创建cookie
  • 获取cookie
  • 设置cookie到期时间
  • 删除cookie

创建cookie

要创建一个 cookie,请使用 document.cookie:

document.cookie = "username=Minghui Zhang";

上面的代码创建一个名为 username,值为 Minghui Zhang 的 cookie。如果您尝试查看 document.cookie,则应该看到以下输出:

"username=Minghui Zhang"

获取cookie

要获取 cookie 的值,请使用以下代码行:

var x = document.cookie;

上面的代码将返回存储在 cookie 中的所有内容。

如果要获取特定 cookie 的值,请使用以下函数:

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

该函数将返回存储在 cookie 中的 cname 变量的值。如果 cookie 不存在,则返回空字符串。

设置 cookie 的到期时间

默认情况下,cookie 是在浏览器关闭时删除的。但是,您还可以将 cookie 设置为在特定日期过期。要设置 cookie 的到期日期,请使用以下语法:

var d = new Date();
d.setTime(d.getTime() + (24*60*60*1000));
var expires = "expires="+ d.toUTCString();

document.cookie = "username=John" + ";" + expires;

上面的代码将在一天后过期 username cookie。

删除cookie

要删除 cookie,请将 cookie 的到期日期设置为过去的日期,如下所示:

document.cookie = "username=John; expires=Thu, 01 Jan 1970 00:00:00 UTC;";

该代码会删除 username cookie。

示例

示例1: 在用户访问网站时记录访问次数

function checkCookie() {
  var count = getCookie("count") || 0;
  count++;
  setCookie("count", count, 30);
  alert("你是第" + count + "次访问该网站!");
}

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

该示例如下:

<!DOCTYPE html>
<html>
<body onload="checkCookie()">
<h2>Cookie 计数器</h2>
<p>每当您访问此网站时,cookie 将存储您的访问次数。</p>
</body>
</html>

示例2: 通过 cookie 在网站之间共享数据

假设您正在开发一个具有登录和购物车功能的网站,并且您想使购物车在不同网页之间进行共享。要通过 cookie 共享购物车数据,请使用以下代码:

var cart = {item1: "product1", item2: "product2"};

// To set the cart
document.cookie = "cart=" + JSON.stringify(cart);

// To get the cart
var cart = JSON.parse(getCookie("cart"));

上面的代码将以 JSON 格式存储 cart 对象,并通过 cookie 共享它所表示的购物车数据。

结论

cookie 是 Web 开发人员的重要工具。使用 JavaScript,开发人员可以轻松地创建、获取和更新 cookie,从而存储访问者的个性化信息、购买历史和其他数据。无论是为网站追踪用户信息还是为在不同页面之间共享数据,使用 cookie 都是极其有用的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 对cookie操作详解及实例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 使用Javascript在HTML中显示实时时间

    下面是如何使用Javascript在HTML中显示实时时间的完整攻略: 1. 在HTML中创建一个用于显示时间的元素 首先,在HTML中创建一个<span>元素,用于显示实时时间。 <p>现在的时间是:<span id="time"></span>.</p> 在这里,我们使用了一…

    JavaScript 2023年5月27日
    00
  • JavaScript常用工具函数汇总(浏览器环境)

    JavaScript常用工具函数汇总(浏览器环境) 摘要 在JavaScript开发中,为了节省开发时间、提高效率、降低代码复杂度,我们经常使用JavaScript工具函数。本文对JavaScript常用工具函数进行了汇总,主要包括数组、字符串、日期、数字、DOM、事件、Ajax等方面的常用工具函数。 目录 数组工具函数 字符串工具函数 日期工具函数 数字工…

    JavaScript 2023年5月18日
    00
  • pdf2swf+flexpapers实现类似百度文库pdf在线阅读

    PDF2SWF是一个将PDF文件转换为SWF文件的开源工具,FlexPaper 是一个基于 Flash 的开源文档阅读器。联合使用这两个工具可以用来实现类似百度文库 PDF 在线阅读的效果。 下面是实现该过程的完整攻略: 步骤1:安装和配置软件 安装 PDF2SWF。PDF2SWF 可以从http://www.swftools.org/download.ht…

    JavaScript 2023年6月11日
    00
  • JS中map和parseInt的用法详解

    下面为大家详细讲解“JS中map和parseInt的用法详解”攻略: JS中map和parseInt的用法详解 map()方法 map()方法是JS中数组原型的一种方法,可用于对数组中每个元素进行操作,返回操作后的新数组,实现方式如下: const arr = [1, 2, 3]; const newArr = arr.map((item, index) =…

    JavaScript 2023年5月27日
    00
  • JavaScript中也使用$美元符号来代替document.getElementById

    在JavaScript中,我们常常会使用到document对象来访问HTML元素。比如,要获取id为”myElement”的元素,可以使用document对象中的getElementById方法来获取该元素: var myElement = document.getElementById("myElement"); 这种方式非常的常见,但…

    JavaScript 2023年6月10日
    00
  • JavaScript中的Number数字类型学习笔记

    我很乐意为您讲解“JavaScript中的Number数字类型学习笔记”的完整攻略。请参考以下内容: JavaScript中的Number数字类型学习笔记 什么是Number类型? 在JavaScript中,Number是一种数字类型,包括整数和浮点数。它可以用来存储任何数字,即使是极大的数字或极小的数字。 如何声明一个Number? 在JavaScript…

    JavaScript 2023年6月10日
    00
  • asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示例代码)

    在asp.net中,可以通过后台cs文件生成JSON格式的数据,然后在前台的JavaScript代码中调用这些数据。下面是实现该功能的具体步骤: 1. 在后台cs文件中生成JSON格式数据 我们可以使用C#的JsonObject类来生成JSON格式的数据。示例代码如下: using System.Web.Script.Serialization; // 创建…

    JavaScript 2023年5月27日
    00
  • JavaScript实现单例模式实例分享

    下面是JavaScript实现单例模式的完整攻略。 一、什么是单例模式 单例模式是一种常见的设计模式,在整个系统中只有一个实例对象,可以节约系统资源,减少不必要的对象创建,同时也有助于控制对象的管理。在 JavaScript 中,单例模式一般有两种实现方式:闭包和 ES6 的 class 语法糖。 二、闭包实现单例模式 最常见的单例模式实现方式是使用闭包,将…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部