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

下面是针对“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日

相关文章

  • javascript学习笔记(一) 在html中使用javascript

    关于“javascript学习笔记(一) 在html中使用javascript”的完整攻略,可以分为以下几个部分: 一、为什么要在html中使用javascript 在传统的网页设计中,html主要负责网页的结构和内容,而样式和特效则需要使用css和jquery等技术实现。而javascript则是一门非常重要的网页编程语言,其功能强大,可以实现很多与用户交…

    JavaScript 2023年6月10日
    00
  • pnpm 之降本增效

    作者:京东科技 于振京 受众简介 前端研发工程师 还在为npm i安装大量依赖等待时间较长,npm扁平化node_modules依赖版本冲突在苦恼吗,不用苦恼pnpm为你保驾护航 主要影响:安装依赖包的过程,假如使用的是npm install会根据package-lock.json进行软件包的安装,如果没有package-lock.json会根据packag…

    JavaScript 2023年4月17日
    00
  • js防止页面被iframe调用的方法

    JS防止页面被iframe调用的方法是一种常用的前端安全技术。当我们的页面被一些不安全的第三方网站运用iframe引入时,会存在一定的安全问题,比如我们网站中的用户信息可能会被第三方页面获取等。因此,我们需要采取相应的安全措施,防止我们的页面被嵌入到非法站点中,这里给出两种常用方式供参考: 方式一:判断当前页面是否在iframe中 if (self !== …

    JavaScript 2023年6月11日
    00
  • 浅析javaScript中的浅拷贝和深拷贝

    浅析JavaScript中的浅拷贝和深拷贝 拷贝是什么 在JavaScript中,我们通常把拷贝称之为复制或者克隆,这里的拷贝是指将一个变量的值复制到另一个变量或对象中的过程。但是在拷贝的过程中,存在一种不同的拷贝方式,即浅拷贝和深拷贝。 浅拷贝 浅拷贝(Shallow Copy)是指将一个对象复制到另一个对象中,只是将对象的引用复制了过去,而不是对对象进行…

    JavaScript 2023年6月10日
    00
  • JS对日期操作封装代码实例

    下面是关于”JS对日期操作封装代码实例”的详细讲解攻略。 一、需求分析 在日常开发中,我们常常需要使用到日期操作的功能。而通过JS封装一些日期操作方法,可以更加便捷地完成日期相关的需求。 具体来说,我们需要在JS中封装以下日期操作方法:1.格式化日期2.获取最近n天的日期列表3.获取当前日期 二、代码实现 1. 格式化日期 function formatDa…

    JavaScript 2023年5月28日
    00
  • 最全的Javascript编码规范(推荐)

    《最全的JavaScript编码规范(推荐)》是一篇非常有价值的文章,它详细介绍了如何使用规范的代码风格来编写JavaScript程序。下面我会为您提供一份完整的攻略,希望能够帮助您更好地理解和应用这些编码规范。 简介 首先,我们来了解一下这篇文章的简介。本文提供的是JavaScript的编码规范,可以帮助开发者编写极具可读性和可维护性的JavaScript…

    JavaScript 2023年5月18日
    00
  • 浅谈Cookie的生命周期问题

    浅谈Cookie的生命周期问题 在浏览网页时,我们经常会使用到Cookie。Cookie是存放在客户端的一种跨会话保持状态的技术。它可以保存一些用户的操作信息,常用的有登录状态、购物车信息等。在使用过程中,我们需要了解Cookie的生命周期问题。 Cookie的生命周期 Cookie的生命周期指的是从客户端Cookie创建到失效的整个时间段。下面详细介绍Co…

    JavaScript 2023年6月11日
    00
  • Html获取登陆用户名的示例代码

    获取登录用户名是Web开发中很常见的需求。本文将分享两个示例代码,分别使用前后端不同的技术,帮助你在自己的网站中获取登录用户名。 1. 基于后端Session的示例代码 如果你的网站是基于后端Session来实现用户登陆的,那么你可以使用下面的这段PHP代码来获取当前登录用户的用户名: <?php session_start(); if(isset($…

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