JS使用cookie实现DIV提示框只显示一次的方法

yizhihongxing

JS使用cookie实现DIV提示框只显示一次的方法可以分为以下几个步骤:

  1. 判断cookie是否存在
  2. 如果cookie不存在,则显示DIV提示框,并设置cookie
  3. 如果cookie存在,则不显示DIV提示框

具体步骤如下:

  1. 判断cookie是否存在:
function getCookie(name) {
  var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  if (arr != null) {
    return unescape(arr[2]);
  }
  return null;
}

var isShow = getCookie("isShow");
if (isShow != null && isShow == "false") {
  // do not show div
} else {
  // show div
}
  1. 如果cookie不存在,则显示DIV提示框,并设置cookie:
function setCookie(name, value, day) {
  var expires = "";
  if (day) {
    var date = new Date();
    date.setTime(date.getTime() + day * 24 * 60 * 60 * 1000);
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + escape(value) + expires + "; path=/";
}

var isShow = getCookie("isShow");
if (isShow == null) {
  // show div
  setCookie("isShow", "false", 30); // 30 days
}
  1. 如果cookie存在,则不显示DIV提示框:
var isShow = getCookie("isShow");
if (isShow != null && isShow == "false") {
  // do not show div
} else {
  // show div
}

以下是两个示例:

  1. 示例一:
<div id="tip" style="display:none;">This is a div tip.</div>

<script>
function getCookie(name) {
  var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  if (arr != null) {
    return unescape(arr[2]);
  }
  return null;
}

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

var isShow = getCookie("isShow");
if (isShow == null) {
  // show div
  setCookie("isShow", "false", 30); // 30 days
  document.getElementById("tip").style.display = "block";
}
</script>
  1. 示例二:
<div id="tip" style="display:none;">This is a div tip.</div>

<script>
function getCookie(name) {
  var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  if (arr != null) {
    return unescape(arr[2]);
  }
  return null;
}

var isShow = getCookie("isShow");
if (isShow != null && isShow == "false") {
  // do not show div
} else {
  // show div
  document.getElementById("tip").style.display = "block";
}

document.getElementById("close-btn").onclick = function() {
  document.getElementById("tip").style.display = "none";
  setCookie("isShow", "false", 30); // 30 days
};
</script>

在示例二中,还增加了一个点击关闭按钮后设置cookie的功能,确保用户可以关闭DIV提示框之后不再显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS使用cookie实现DIV提示框只显示一次的方法 - Python技术站

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

相关文章

  • JavaScript中的稀疏数组与密集数组[译]

    JavaScript中的数组可以是密集的,也可以是稀疏的。密集数组即为连续的数组元素,稀疏数组表示有些元素被省略了。本文将详细讲解JavaScript中稀疏数组和密集数组的概念和行为。 什么是稀疏数组? 稀疏数组是指数组元素具有不连续性,或者说中间有空洞的数组。在稀疏数组中,一些元素是不存在的,我们可以用下标访问到的元素即表示存在的,没法访问到的元素则被视为…

    JavaScript 2023年5月27日
    00
  • JavaScript 条件判断使用技巧详解

    JavaScript 条件判断使用技巧详解 在 JavaScript 中,条件判断是非常常用的语法,它决定着程序的流程。本篇文章将详细讲述 JavaScript 条件判断使用技巧,主要包括以下三个部分: if、else、else if 的使用 三元表达式的使用 switch 语句的使用 if、else、else if 的使用 if 语句是最基本的条件语句,它…

    JavaScript 2023年5月18日
    00
  • JS实现倒计时和文字滚动的效果实例

    请看下方内容。 JS 实现倒计时效果 HTML 结构 首先,我们需要在 HTML 中创建一个对应的元素,用于显示倒计时效果,例如: <div id="countdown"></div> JS 代码实现 然后,我们需要编写 JS 代码来控制倒计时效果。具体实现过程如下: 初始化倒计时时间 let countDownD…

    JavaScript 2023年6月11日
    00
  • js 性能优化之算法和流程控制

    JS性能优化之算法和流程控制 优化JS代码是提升Web应用性能的重要手段之一。在处理算法和流程控制方面,我们可以进行一些优化,来使我们的代码更高效。 算法优化 选择合适的数据结构 在处理大量数据的情况下,选择合适的数据结构非常重要。例如,在需要快速查找大量数据的情况下,应选择哈希表等查找性能高效的数据结构。在需要频繁添加或删除数据的情况下,应选择链表等插入和…

    JavaScript 2023年5月27日
    00
  • 详解ES6之用let声明变量以及let loop机制

    以下是关于“详解ES6之用let声明变量以及let loop机制”的完整攻略: 一、let声明变量 ES6中新增了let关键字,用于声明变量。let作用域是块级的作用域,而不是全局作用域。 1. let的基本使用 使用let声明变量,可以通过相同的语法进行赋值和修改值。例如: let count = 1; count = 2; console.log(cou…

    JavaScript 2023年6月10日
    00
  • 利用d3.js制作连线动画图与编辑器的方法实例

    利用d3.js制作连线动画图步骤如下: 第一步:安装d3.js库文件 要使用d3.js库进行开发,需要将d3.js的库文件下载到本地,然后在HTML文档中引入该文件。 <script src="https://d3js.org/d3.v5.min.js"></script> 第二步:创建SVG容器 使用d3.js创…

    JavaScript 2023年6月10日
    00
  • CesiumJS源码杂谈之从光到 Uniform

    下面是关于“CesiumJS源码杂谈之从光到Uniform”的完整攻略的详细讲解。 前置知识 在讲解这个话题之前,需要对一些基本的知识有一定的了解。包括:WebGL的基础知识、Shader的基础知识、CesiumJS的基础知识等。 从光开始 在WebGL的渲染过程中,光是非常重要的一个环节。CesiumJS中的光源主要有以下几种: sun:太阳光。 moon…

    JavaScript 2023年6月10日
    00
  • JavaScript实现网站访问次数统计代码

    下面我会详细讲解“JavaScript实现网站访问次数统计代码”的完整攻略。 1. 为什么需要统计网站访问次数? 网站的访问次数统计可以帮助站长了解网站的流量并进行网站流量分析,进而针对性的优化网站,提高网站的访问量和用户满意度。 2. 实现网站访问次数的方法 实现网站访问次数的方法有很多种,其中比较常见的方法有两种:一种是使用服务器日志统计网站访问次数,另…

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