JavaScrpt中如何使用 cookie 设置查看与删除功能

yizhihongxing

下面详细讲解如何使用JavaScript中的cookie设置查看与删除功能:

1. 什么是 cookie?

cookie是一种储存在用户客户端的小型文本文件,用于存储用户数据,实现网站的状态管理。cookie一般用于记录用户的登录状态、购物车信息等。

2. 如何设置 cookie?

在JavaScript中,可以通过document.cookie来设置cookie。下面是示例代码:

document.cookie = "username=John";

上述代码会在客户端创建一个名为username的cookie,它的值为John

也可以通过添加expires属性来设置过期时间:

// 过期时间为1小时
var expires = new Date();
expires.setTime(expires.getTime() + (60 * 60 * 1000));
document.cookie = "username=John;expires=" + expires.toUTCString();

上述代码会在客户端创建一个名为username的cookie,它的值为John,过期时间为1小时。

3. 如何获取 cookie?

可以通过document.cookie来获取当前网站的所有cookie。下面是一个示例:

console.log(document.cookie);

上述代码会打印出当前网站的所有cookie。

如果需要获取某个cookie的值,可以通过函数来实现:

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

上述代码中,getCookie()函数用于获取指定名称的cookie的值。如果存在该cookie,则返回该cookie的值;如果不存在,则返回null。

4. 如何删除 cookie?

可以通过设置cookie的expires属性为一个过去的时间来删除cookie。下面是一个示例:

// 删除名为username的cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC;";

上述代码会删除名为username的cookie。

示例1:记录用户选择语言的设置

以下是一个示例,演示如何使用cookie记录用户选择的语言设置。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>语言选择</title>
    <script>
      function selectLanguage(lang) {
        // 记录用户选择的语言设置
        document.cookie = "lang=" + lang;
        // 刷新页面
        location.reload();
      }

      function getLanguage() {
        // 获取用户选择的语言设置
        var lang = getCookie("lang");
        // 如果用户已经选择过语言,则返回语言设置
        if (lang) {
          return lang;
        }
        // 如果用户没有选择过语言,则返回默认语言(英语)
        return "en";
      }

      function showPage() {
        // 获取用户选择的语言设置
        var lang = getLanguage();
        // 根据用户选择的语言设置显示网页内容
        if (lang === "en") {
          document.getElementById("content").innerHTML = "This is the English version of the website.";
          document.getElementById("select-button").innerHTML = "<button onclick=\"selectLanguage('zh')\">中文</button>";
        } else {
          document.getElementById("content").innerHTML = "这是网站的中文版。";
          document.getElementById("select-button").innerHTML = "<button onclick=\"selectLanguage('en')\">English</button>";
        }
      }

      function getCookie(name) {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) {
          var cookie = cookies[i].trim();
          if (cookie.indexOf(name + '=') === 0) {
            return cookie.substring(name.length + 1, cookie.length);
          }
        }
        return null;
      }
    </script>
  </head>
  <body onload="showPage()">
    <div id="content"></div>
    <div id="select-button"></div>
  </body>
</html>

上述代码中,selectLanguage()函数用于记录用户选择的语言设置。getLanguage()函数用于获取用户选择的语言设置并返回。showPage()函数用于根据用户选择的语言设置显示网页内容。

示例2:记录用户最近一次访问时间

以下是另一个示例,演示如何使用cookie记录用户最近一次访问时间。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>最近访问时间</title>
    <script>
      function showLastVisitedTime() {
        // 获取上一次访问时间
        var lastVisitedTime = getCookie("lastVisitedTime");
        // 如果没有上一次访问时间,则显示默认信息
        if (!lastVisitedTime) {
          document.getElementById("msg").innerHTML = "欢迎初次访问本网站!";
          return;
        }
        // 计算时间差
        var now = new Date();
        var last = new Date(lastVisitedTime);
        var diff = now.getTime() - last.getTime();
        var diffDays = Math.floor(diff / (1000 * 60 * 60 * 24));
        // 显示时间差信息
        if (diffDays === 0) {
          document.getElementById("msg").innerHTML = "您上次访问本网站是今天!";
        } else {
          document.getElementById("msg").innerHTML = "您上次访问本网站是 " + diffDays + " 天前!";
        }
      }

      function setLastVisitedTime() {
        // 设置本次访问时间
        var now = new Date();
        document.cookie = "lastVisitedTime=" + now.toUTCString();
      }

      function getCookie(name) {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) {
          var cookie = cookies[i].trim();
          if (cookie.indexOf(name + '=') === 0) {
            return cookie.substring(name.length + 1, cookie.length);
          }
        }
        return null;
      }
    </script>
  </head>
  <body onload="showLastVisitedTime();setLastVisitedTime();">
    <div id="msg"></div>
  </body>
</html>

上述代码中,showLastVisitedTime()函数用于显示上一次访问时间的信息。setLastVisitedTime()函数用于设置本次访问时间。在浏览器加载页面时,先调用showLastVisitedTime()函数显示上一次访问时间的信息,然后再调用setLastVisitedTime()函数设置本次访问时间的cookie。这样就可以在下一次访问网站时显示上一次访问时间的信息了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScrpt中如何使用 cookie 设置查看与删除功能 - Python技术站

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

相关文章

  • javascript中eval函数用法分析

    JavaScript中eval函数用法分析 在 JavaScript 中,eval() 函数是一个非常有用的函数,可以用来执行字符串中的代码。本文将分析 eval() 函数的用法及其潜在的安全问题。 什么是eval函数 eval() 函数是 JavaScript 语言中的一个函数,可以将一个字符串作为代码执行。其基本语法如下: eval(string) 其中…

    JavaScript 2023年5月28日
    00
  • JavaScript之promise_动力节点Java学院整理

    关于JavaScript中的Promise,我们可以从以下几个方面来介绍: 一、Promise概述 Promise是一种异步编程的解决方案,简单来说就是用更优雅的方式解决回调地狱的问题。根据MDN的定义,Promise是一个代表了一个异步操作最终完成或者失败的对象。 二、Promise三种状态 Promise有三种状态:pending(进行中)、fulfil…

    JavaScript 2023年5月28日
    00
  • 千篇一律的JS运算符讲解,一起来看看

    千篇一律的JS运算符讲解,一起来看看 前言 JS运算符是编写JS代码时非常基本的一种语法。很多初学者在学习JS时可能会忽略这些运算符的学习,但却是非常重要的基础。在本篇文章中,我们将会全面讲解JS的运算符,并提供一些示例来帮助读者更好地理解这些内容。 算术运算符 运算符 描述 示例 + 加法 10 + 20 = 30 – 减法 20 – 10 = 10 * …

    JavaScript 2023年5月28日
    00
  • Layui事件监听的实现(表单和数据表格)

    概述: Layui是一个轻量级的前端UI框架,其特点是注重结构化,适度封装与扩展性,而且非常适合大型的前端应用开发。在Layui中,实现事件监听是非常重要的一部分。本文将详细介绍Layui事件监听的实现,包括如何监听表单提交事件、数据表格行操作事件等常见事件,同时提供完整的代码示例进行说明。 Layui表单提交事件监听: 在Layui提交表单的过程中,可以通…

    JavaScript 2023年6月10日
    00
  • js下写一个事件队列操作函数

    下面是详细讲解“js下写一个事件队列操作函数”的完整攻略。 什么是事件队列? 事件队列是 JavaScript 中用于管理异步任务的机制。异步任务例如 Ajax 请求、setTimeout、setInterval 等,这些任务会在一个单独的线程中执行,不会与页面渲染等同步任务同时进行,因此对于编写高效、优化的 JavaScript 代码十分重要。 编写一个事…

    JavaScript 2023年5月28日
    00
  • JS正则表达式验证数字代码

    下面我将详细讲解 JS 正则表达式验证数字代码的完整攻略。 步骤 1. 构建正则表达式 首先需要构建一个用于验证数字的正则表达式。一般来说,数字可以包含整数和小数,还可能有正负号。 验证整数和小数的正则表达式如下: /^-?\d+(\.\d+)?$/ 其中: ^ 表示字符串开始 -? 表示可以有一个可选的负号 \d+ 表示至少一个数字 (\.\d+)? 表示…

    JavaScript 2023年6月10日
    00
  • js实现倒计时及时间对象

    下面是详细讲解“JS实现倒计时及时间对象”的完整攻略。 时间对象 在 JavaScript 中,可以使用内置的时间对象 Date 来处理日期和时间。所以,我们可以借助 Date 对象来实现倒计时。 获取当前时间 首先,我们需要获取当前的时间。使用 new Date() 可以获取当前的日期和时间。 let now = new Date(); // 获取当前时间…

    JavaScript 2023年5月27日
    00
  • Vue Cli 3项目使用融云IM实现聊天功能的方法

    首先我们需要了解一下Vue Cli 3和融云IM的基本概念: Vue Cli 3是一个基于Vue.js进行快速开发的完整系统,帮助开发者搭建一套可靠、高效的前端工作流。 融云IM(Instant Messaging)是一款具有即时通信功能的云通信服务,支持发送文本、图片、音频、视频等多种消息类型,适用于各种在线聊天场景。 实现聊天功能的步骤如下: 1.创建项…

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