js利用cookie实现记住用户页面操作

yizhihongxing

下面是针对“js利用cookie实现记住用户页面操作”的完整攻略:

1. 概述

在用户访问网站时,很多时候需要记录一些用户的状态信息,如登录状态、上一次访问的页面等等。这时候,使用Cookie是一种非常方便的方式。Cookie是由服务器发送给浏览器的一小段数据,存储在客户端本地的某个位置,如硬盘、内存等,可以在每次HTTP请求时自动发送到服务器端。JavaScript可以通过document.cookie对象来获取和操作cookie。接下来,我们将讨论如何通过cookie来实现“记住用户页面操作”的功能。

2. 代码实现

2.1 设置cookie

可以通过document.cookie来设置cookie,如下所示:

document.cookie = "username=Tom; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";

在上面的代码中,设置了一个名为“username”的cookie,它的值是“Tom”,过期时间是2025年12月18日12:00:00,路径是网站根目录。

2.2 获取cookie

同样,在JavaScript中获取cookie也是通过document.cookie来实现的,比如下面的代码:

var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*\=\s*([^;]*).*$)|^.*$/, "$1");

上面的代码中,使用了一个正则表达式,从cookie字符串中获取了名为“username”的cookie的值。

2.3 删除cookie

要删除cookie,则可以将过期时间设置为一个已经过去的时间,如下所示:

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

上面的代码中,将过期时间设置为1970年1月1日0:00:00,表示这个cookie已经过期,浏览器会自动删除它。

3. 示例说明

下面通过两个具体的示例,演示如何使用cookie实现“记住用户页面操作”的功能。

3.1 示例一:记住用户选择的背景颜色

在网站中,我们可以提供几种背景颜色供用户选择,用户选择了一个背景颜色后,刷新页面后,网站仍然显示用户上一次选择的背景颜色。

HTML代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>记住用户选择的背景颜色</title>
    <style type="text/css">
        body {
            background-color: white;
        }
        .red {
            background-color: red;
        }
        .yellow {
            background-color: yellow;
        }
        .green {
            background-color: green;
        }
    </style>
</head>
<body>
    <h1>请选择一个背景颜色:</h1>
    <input class="red" type="button" value="红色">
    <input class="yellow" type="button" value="黄色">
    <input class="green" type="button" value="绿色">
    <script type="text/javascript">
        var colorBtns = document.getElementsByTagName("input");
        var bgColor = getCookie("bgColor");
        if (bgColor) {
            document.body.className = bgColor;
        }
        for (var i = 0; i < colorBtns.length; i++) {
            colorBtns[i].onclick = function() {
                var className = this.className;
                document.body.className = className;
                setCookie("bgColor", className, 7);
            }
        }
        function setCookie(cookieName, cookieValue, expiredays) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + expiredays);
            document.cookie = cookieName + "=" + escape(cookieValue) + ((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());
        }
        function getCookie(cookieName) {
            var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)');
            return cookieValue ? cookieValue.pop() : '';
        }
    </script>
</body>
</html>

在这个示例中,我们用三个按钮表示三种背景颜色。当用户点击一个按钮时,背景颜色会改变,并通过setCookie()函数来设置名为“bgColor”的cookie。当用户再次访问该页面时,通过getCookie()函数来获取“bgColor”cookie的值,并根据它的值为页面的背景色赋值。

3.2 示例二:记住用户在输入框输入的内容

在网站中,有一个输入框,用户输入一些内容后,点击保存按钮,内容被保存下来。当用户再次访问该页面时,输入框中就显示上一次用户输入的内容。

HTML代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>记住用户在输入框输入的内容</title>
</head>
<body>
    <input type="text" id="inputText"/>
    <input type="button" value="保存" onclick="saveText()"/>
    <script type="text/javascript">
        var inputText = document.getElementById("inputText");
        var text = getCookie("text");
        if (text) {
            inputText.value = text;
        }
        function saveText() {
            var textValue = inputText.value;
            if (textValue) {
                setCookie("text", textValue, 7);
            } else {
                setCookie("text", "", -1);
            }
        }
        function setCookie(cookieName, cookieValue, expiredays) {
            var exdate = new Date();
            exdate.setDate(exdate.getDate() + expiredays);
            document.cookie = cookieName + "=" + escape(cookieValue) + ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
        }
        function getCookie(cookieName) {
            var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)');
            return cookieValue ? cookieValue.pop() : '';
        }
    </script>
</body>
</html>

在这个示例中,当用户输入一些内容并点击保存按钮后,通过setCookie()函数为名为“text”的cookie设置一个过期时间为7天。当用户再次访问该页面时,通过getCookie()函数获取“text”cookie的值,并将其赋值给输入框的value属性。

4. 总结

通过本文的介绍,我们了解了JavaScript如何通过cookie来实现“记住用户页面操作”的功能,包括设置cookie、获取cookie和删除cookie。同时,通过两个具体的示例说明了如何实现这一功能。希望本文能对大家的学习有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js利用cookie实现记住用户页面操作 - Python技术站

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

相关文章

  • js验证电话号码与手机支持+86的正则表达式

    要验证电话号码与手机是否支持+86,我们需要使用正则表达式。 以下是一个通用的正则表达式,用于检查电话号码或手机号是否正确: /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/ 让我们详细分析这个正则表达式: ^表示字符串开头。 (表示一个捕获分组的开始。 0\d{2,3}-\d{7,8}匹配固定电话号码,其中0后面是2或3个数…

    JavaScript 2023年6月10日
    00
  • 教你用几十行js实现很炫的canvas交互特效

    关于“教你用几十行js实现很炫的canvas交互特效”的完整攻略,我将从以下几个方面进行详细讲解: 准备工作 在实现交互特效之前,我们需要准备一些必要的工作:首先是引入Canvas标签;其次是编写Canvas绘制所需的HTML、CSS及JavaScript代码;最后还需要确定绘制的内容和样式。 创建画布并绘制基础图形 在Canvas中创建画布并绘制基础图形是…

    JavaScript 2023年6月10日
    00
  • 微信小程序 Page()函数详解

    微信小程序 Page() 函数详解 什么是 Page() 函数 在微信小程序中,一个页面通常对应着一个 .js 文件,这个 .js 文件中定义了一个名为 Page() 的函数。Page() 函数是小程序开发中最基础、最重要的函数之一,它用于定义一个页面,包括页面的生命周期函数、页面事件处理函数以及数据等内容。 Page() 函数语法 Page({ data:…

    JavaScript 2023年6月11日
    00
  • 我的第一个项目(十一) :飞机大战分包完成(简单阐述分包思路以及过程)

    好家伙,   代码已开源 Git: https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git NPM: panghu-planebattle-esm – npm (npmjs.com)   现在,比如说,我用Vue写好了个人博客主页的前端 我想在这个主页里面加点东西,让我的博客更缤…

    JavaScript 2023年4月19日
    00
  • Three.js Interpolant实现动画插值

    对于使用Three.js实现动画插值这一话题,我们可以从以下几个方面来进行详细讲解: 什么是动画插值? 为什么要使用Interpolant实现动画插值? Three.js Interpolant的使用方法及示例。 什么是动画插值? 首先我们来了解一下什么是动画插值。 在计算机动画中,我们通常使用一个个关键帧(keyframe)来描述动画的状态。而这些关键帧之…

    JavaScript 2023年5月28日
    00
  • JavaScript 错误处理与调试经验总结

    以下是详细讲解“JavaScript 错误处理与调试经验总结”的完整攻略。 问题简述 JavaScript 是一门动态解释型语言,它的开发过程中难免会出现各种各样的问题,如语法错误、逻辑错误、运行时错误等。这就需要我们在开发过程中掌握一些错误处理和调试技巧,以提高代码的质量和开发效率。 错误处理和调试技巧 1. 使用 try-catch-finally 块 …

    JavaScript 2023年5月27日
    00
  • JavaScript变量声明var,let.const及区别浅析

    JavaScript变量声明var,let,const及区别浅析 在JavaScript中,我们可以使用 var,let 和 const 关键字来声明变量,但这些关键字的用法和区别是比较容易混淆的。本文将对这三种关键字进行详细讲解。 var 在ES6之前,JavaScript中只有 var 这一个声明变量的关键字。var 关键字声明的变量作用域是函数级别的。…

    JavaScript 2023年6月10日
    00
  • 给ListBox添加双击事件示例代码

    给ListBox添加双击事件的步骤如下: 1. 添加事件处理方法 在窗体的代码文件中,找到窗体类中的初始化代码(通常是InitializeComponent方法)。 在该方法的末尾添加以下代码,为ListBox对象添加一个名为DoubleClick的事件处理方法: this.listBox1.DoubleClick += new System.EventHa…

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