js实现操作cookie的常见方法总结【创建、读取、删除】

JS实现操作Cookie的常见方法总结

在Web开发中,Cookie是一种最为常见的Web存储机制,它能够将数据存储在客户端浏览器中,以便于实现多个请求或多个页面间的数据传递或共享。下面是JS实现操作Cookie的常见方法总结,包括创建、读取和删除。

1. 创建Cookie

使用JS创建Cookie时,需要使用document.cookie属性。document.cookie是一个字符串,它是通过等号(“=”)和分号(“;”)来分隔多个名值对的。下面是一个创建Cookie的示例代码:

function setCookie(name, value, days) {
  var date = new Date();
  date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  var expires = "expires=" + date.toUTCString();
  document.cookie = name + "=" + value + ";" + expires + ";path=/";
}

在上面的代码中,setCookie函数接受三个参数:Cookie的名称、Cookie的值和Cookie的过期时间(以天为单位)。这个函数将Cookie的过期时间设置为从当前日期开始的特定天数之后,然后将Cookie写入文档对象的cookie属性中。

我们可以使用以下代码来调用setCookie函数:

setCookie("username", "John Doe", 7);

上述代码将创建一个名为“username”的Cookie,其值为“John Doe”,并在7天后过期。

2. 读取Cookie

要读取Cookie值,需要遍历document.cookie数组并解析其中的名值对。以下是一个示例函数,可用于读取Cookie值:

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

在上面的代码中,getCookie函数接受一个Cookie的名称作为参数,并将其与document.cookie数组中的所有Cookie进行比较。对于每个Cookie,该函数使用JavaScript的字符串方法来删除名称值之间的空白字符,并检查该Cookie是否匹配给定的名称。如果找到匹配项,则返回该Cookie的值,否则返回一个空字符串。

以下代码将调用getCookie函数并试图获取名为“username”的Cookie的值:

var username = getCookie("username");

上述代码将返回用户名Cookie的值,如果Cookie不存在,则返回一个空字符串。

3. 删除Cookie

要删除Cookie,可以通过将其过期时间设置为过去的时间来实现。以下是一个示例函数,可用于删除Cookie:

function deleteCookie(name) {
  document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}

在上面的代码中,deleteCookie函数接受一个Cookie的名称作为参数,并将其从document.cookie数组中删除。该函数实现的方法是使用Javascript的字符串连接来将Cookie的过期时间设置为1970年1月1日,并将其路径设置为“/”。

以下代码将调用deleteCookie函数并尝试删除名为“username”的Cookie:

deleteCookie("username");

上述代码将删除名为“username”的Cookie。

示例说明

示例一:保存用户喜好的主题色

// 创建Cookie - 设置主题颜色Cookie
function setThemeCookie(color) {
  var date = new Date();
  date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000)); // 有效期1年
  var expires = "expires=" + date.toUTCString();
  document.cookie = "theme=" + color + ";" + expires + ";path=/";
}

// 读取Cookie - 获取主题颜色Cookie
function getThemeCookie() {
  var cookieName = "theme" + "=";
  var cookies = document.cookie.split(';');
  for(var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    while (cookie.charAt(0) === ' ') {
      cookie = cookie.substring(1);
    }
    if (cookie.indexOf(cookieName) === 0) {
      return cookie.substring(cookieName.length, cookie.length);
    }
  }
  return "";
}

// 删除Cookie - 删除主题颜色Cookie
function deleteThemeCookie() {
  document.cookie = "theme=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}

// 示例用法
setThemeCookie("red"); // 设置主题颜色为"red"
var theme = getThemeCookie(); // 获取当前主题颜色
console.log(theme); // 输出 "red"
deleteThemeCookie(); // 删除主题颜色Cookie

示例二:保存用户登录状态

// 创建Cookie - 设置用户登录状态Cookie
function setLoginCookie(username) {
  var date = new Date();
  date.setTime(date.getTime() + (60 * 60 * 1000)); // 有效期1小时
  var expires = "expires=" + date.toUTCString();
  document.cookie = "login=" + username + ";" + expires + ";path=/";
}

// 读取Cookie - 获取用户登录状态Cookie
function getLoginCookie() {
  var cookieName = "login" + "=";
  var cookies = document.cookie.split(';');
  for(var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    while (cookie.charAt(0) === ' ') {
      cookie = cookie.substring(1);
    }
    if (cookie.indexOf(cookieName) === 0) {
      return cookie.substring(cookieName.length, cookie.length);
    }
  }
  return "";
}

// 删除Cookie - 删除用户登录状态Cookie
function deleteLoginCookie() {
  document.cookie = "login=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}

// 示例用法
setLoginCookie("John"); // 设置用户登录状态为"John"
var login = getLoginCookie(); // 获取当前登录状态
console.log(login); // 输出 "John"
deleteLoginCookie(); // 删除用户登录状态Cookie

上述的两个示例演示了如何使用JavaScript实现操作Cookie,分别用于保存用户喜好的主题色和保存用户的登录状态。这些示例可用于各种Web应用程序,以便于存储和管理用户状态和首选项。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现操作cookie的常见方法总结【创建、读取、删除】 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 如何使用jQuery获取特定选项标签的文本

    获取特定选项标签的文本可以使用jQuery中的.text()方法。 首先,需要确定要获取文本的特定选项标签,可以使用CSS选择器来选择目标元素,例如: // 选择id为option1的选项标签,并获取其文本 var option1text = $(‘#option1’).text(); 第二个示例,如果要获取一组选项的文本,可以使用.each()方法遍历每个…

    jquery 2023年5月12日
    00
  • jQWidgets jqxRibbon模式属性

    jQWidgets是一个基于JavaScript的UI组件库,其中jqxRibbon是其提供的一款标签式菜单工具栏控件。jqxRibbon具有丰富的属性,其中包括模式属性。下面将详细讲解jqxRibbon模式属性的使用和示例。 jqxRibbon模式属性 jqxRibbon的模式属性(mode)控制其菜单项的显示方式,包括三种模式:default,popup…

    jquery 2023年5月11日
    00
  • jQuery Mobile Loader checkLoaderPosition() 方法

    jQuery Mobile Loader是jQuery Mobile框架中的一个组件,用于在页面加载和处理中显示一个阻塞性的加载状态,给用户一个视觉上的提示。其中checkLoaderPosition()方法是jQuery Mobile Loader组件提供的一个函数,用于控制加载状态的位置和显示方式。 1. checkLoaderPosition()方法解…

    jquery 2023年5月12日
    00
  • jQuery ready()方法

    jQuery的ready()方法是一种jQuery特有的异步执行方法,它确保了在文档完全加载并解析完毕后才会执行指定的代码,从而防止出现函数执行时文档仍未完全加载完毕所导致的错误。 语法 “`Javascript $(document).ready(function() { //这里插入的代码只有在文档加载完毕后才会被执行 }); ready()方法可以简…

    jquery 2023年5月12日
    00
  • jQWidgets jqxLoader文本属性

    jQWidgets jqxLoader文本属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxLoader是其中之一。本文将详细介绍jqxLoader的文本属性,包括用法、语法和示例。 文本属性的语法 jqxLoader的文本属性用于设置加载器中显示的文本。基本语法如下: $(‘#jqxLoader’).jqxLo…

    jquery 2023年5月10日
    00
  • 详解Web使用webpack构建前端项目

    详解Web使用webpack构建前端项目 什么是Webpack? Webpack是一个开源的前端打包工具。它的主要作用是将多个资源打包在一起,在前端项目中引入这个打包后的文件。 安装Webpack 要使用Webpack,需要先安装Node.js环境,接着可以使用以下命令安装Webpack: npm install webpack –save-dev 使用W…

    jquery 2023年5月28日
    00
  • php+mysql+jquery实现日历签到功能

    我们来详细讲解如何用php、mysql和jquery实现日历签到功能。 1.准备工作 在开始之前,要确保已经完成以下准备工作: 安装PHP环境、Mysql数据库和Web服务器(如Apache、nginx等); 下载jQuery库,并在需要的页面中引用; 创建一个名为calendar的数据库,并在其中创建一个名为sign_in的数据表; 2.创建数据库和数据表…

    jquery 2023年5月28日
    00
  • jQuery callbacks.add()方法

    在jQuery中,可以使用callbacks.add()方法来向回调列表中添加一个或多个回调函数。以下是详细攻略,含两个示例,演示如何使用callbacks.add()方法: 语法 callbacks.add()方法的语法如下: callbacks.add(callbacks); callbacks.add(callback); 说明: callbacks:…

    jquery 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部