JavaScript实现cookie的写入、读取、删除功能

yizhihongxing

当一个web页面被加载到浏览器中时,浏览器会为它分配一个cookie的存储区域。此时,开发者可以通过JavaScript代码来操作cookie的写入、读取和删除等功能。

写入cookie

可以使用document.cookie来写入cookie。document.cookie是一个字符串,它存储着当前网页的所有cookie。写入cookie的格式如下:

document.cookie = "key=value; expires=date; path=path; domain=domain; secure";

其中,各项参数的意义如下:

  • key: cookie的名称,同一网页对应多个cookie时要注意不要重名。
  • value: cookie的值,可以为任意字符串。
  • expires: cookie有效期,格式为date,如"Thu, 18 Dec 2022 12:00:00 GMT",也可以是一个过时的时间,如"-1 day"表示 cookie 会在当前时间的前一天过期。
  • path: 可选,表示cookie的作用域,如"/"表示网站的根目录,"/test/"表示网站的test目录。
  • domain: 可选,表示cookie可以被发送到哪个域名服务器,如"example.com"。
  • secure: 可选,表示cookie只能通过HTTPS协议加密传输,如"; secure"

下面是一个写入cookie的示例:

// 将名称为"name",值为"Tom",有效期为一小时的cookie写入网页
var now = new Date();
var expiredTime = now.getTime() + 60 * 60 * 1000; // 一小时后过期
now.setTime(expiredTime);
document.cookie = "name=Tom; expires=" + now.toUTCString();

读取cookie

当需要读取cookie的值时,可以使用document.cookie来获取当前网页下的cookie值。由于每个cookie都是以分号与空格作为分隔符的字符串,这就要用到JavaScript的字符串处理方法,如split()substr()indexOf()等。

下面是一个读取cookie的示例:

// 读取名称为"name"的cookie的值
function getCookie(name) {
  var cookieArr = document.cookie.split("; ");
  for (var i = 0; i < cookieArr.length; i++) {
    var pair = cookieArr[i].split("=");
    if (name == pair[0]) {
      return pair[1];
    }
  }
  return "";
}

console.log(getCookie("name")); // 输出"Tom"

删除cookie

删除cookie要注意的是,不能直接删除cookie,需要借助写入cookie时的参数来共同删除,包括name、value、expires、path、domain。如下面的示例所示:

// 删除名称为"name"的cookie
function deleteCookie(name) {
  var now = new Date();
  now.setTime(now.getTime() - 1);
  var cval = getCookie(name);
  if (cval != "") {
    document.cookie =
      name + "=" + cval + "; expires=" + now.toUTCString() + "; path=/";
  }
}

deleteCookie("name");
console.log(getCookie("name")); // 输出""

通过上述三个步骤,即可轻松地完成JavaScript实现cookie的写入、读取和删除等功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现cookie的写入、读取、删除功能 - Python技术站

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

相关文章

  • 简单谈谈javascript高级特性

    简单谈谈Javascript高级特性 1. 闭包 1.1 什么是闭包 闭包是指有权访问另一个函数作用域中变量的函数,常用来创建私有变量和方法,还可以用来实现函数柯里化等。 1.2 闭包的使用场景 1.2.1 创建私有变量和方法 function counter() { var count = 0; return { increment: function()…

    JavaScript 2023年6月10日
    00
  • JavaScript中实现sprintf、printf函数

    在JavaScript中,有时候需要格式化字符串输出,针对此需求,可以使用sprintf、printf函数来实现。 sprintf函数的实现 sprintf函数的作用是将指定的格式化字符串输出到一个字符串中。JavaScript中没有原生实现sprintf函数的方法,但是可以通过自定义实现函数来达到此目的。 下面是一个使用sprintf函数实现字符串格式化输…

    JavaScript 2023年5月27日
    00
  • 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)

    让我们一步步来实现在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div,不改变iframe父窗口代码。 首先,我们需要在iframe里的页面编写js,并且通过iframe的parent对象进行与父窗口的交互。以下是大致的步骤: 在iframe页面中编写HTML代码和JS代码,创建一个可以进行展开和收缩的div,并设置好div的初始状态…

    JavaScript 2023年6月11日
    00
  • js创建元素(节点)示例

    下面是关于JS创建元素(节点)示例的完整攻略。 1. 获取元素的父元素 在JS创建元素之前,首先要获取其父元素,即要将新创建的元素添加到哪个元素中。可以通过getElementById()方法获取父元素的引用。比如: let parent = document.getElementById(‘parent’); 其中,parent为获取到的父元素。 2. 创…

    JavaScript 2023年6月10日
    00
  • JS幻想 读取二进制文件

    下面是针对“JS幻想 读取二进制文件”的完整攻略: 概述 在前端开发过程中,有时候需要读取二进制文件,比如音频、视频、图片等。而JavaScript本身是一种基于文本的语言,不能直接读取和处理二进制数据。但是,浏览器提供了一些API,可以帮助我们读取和处理二进制数据,比如FileReader和Typed Array。 使用FileReader读取二进制文件 …

    JavaScript 2023年5月27日
    00
  • window.location.href中url中数据量太大时的解决方法

    当使用JavaScript中的window.location.href属性在URL中传递大量数据时,可能会超出浏览器限制的URL长度限制。这可能导致数据丢失或URL截断,无法完全传递所需的数据。为解决这个问题,我们可以考虑以下两种方法: 方法一:使用POST请求 将数据通过POST请求发送给服务器,而不是将其作为URL参数附加到网址中。这样可以避免浏览器UR…

    JavaScript 2023年6月10日
    00
  • JavaScript编写Chrome扩展实现与浏览器的交互及时间通知

    下面是详细讲解“JavaScript编写Chrome扩展实现与浏览器的交互及时间通知”的完整攻略。 1. 创建Chrome扩展 首先,我们需要创建一个Chrome扩展来实现与浏览器的交互和时间通知。在扩展文件夹中创建以下文件和文件夹: manifest.json:必须的扩展文件,其中包含了扩展的名称、描述、版本和其他元数据。 popup.html:扩展的弹出…

    JavaScript 2023年6月11日
    00
  • 详解Javascript中的Object对象

    详解Javascript中的Object对象 什么是Object对象? 在Javascript中,Object是一种非常常见的数据类型。可以说,Object是Javascript中最重要的一个对象之一。 它是由一组无序的键值对组成的,其中键必须是字符串类型,值可以是任意类型,包括数字、字符串、布尔型、函数、内置对象等。 创建Object对象 创建一个空的Ob…

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