覆盖只显示一次使用cookie

overlay to be displayed only once using cookies

本文关键字:一次 cookie 显示 覆盖      更新时间:2023-09-26

我想在页面加载时显示一个覆盖,但只有一次,但是当用户再次在数据库中保存一些信息时,我在该页面中具有表单相同的覆盖显示,我希望该覆盖只显示一次,直到窗口关闭。

我正在使用cookie来执行相同的操作,但我无法这样做,我在互联网上的某个地方看到过该代码,但它不起作用,我不知道我犯了什么错误

$(document).ready(function () {
  if (document.cookie != "shown") {
    $(".overlay").fadeIn("fast", function () {
      $(".box").animate({"top": "200px"});
    });
    $("img").click(function () {
      $(".box").animate({"top": "-250px"}, function () {
        $(".overlay").fadeOut("fast");
      });
    });
    document.cookie = "shown";
  }
});

document.cookie;分隔列表格式存储cookie。使用search函数查看其中是否存在:

if( document.cookie.search("shown") == -1 )

检查cookie是否存在方法:

function cookieExists(name) {
 return document.cookie.indexOf(name + "=") == 0 ? true : document.cookie.indexOf("; " + name + "=")!=-1
}

用法:

cookieExists("Your_cookie_name")

设置cookie方法:

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

设置cookie的用法(十年):

setCookie("YOUR_COOKIE_NAME","true",10*365)

删除cookie:

setCookie("YOUR_COOKIE_NAME","",0)

最后: 1。)你必须检查他是否有饼干,如果没有显示覆盖。然后在关闭叠加时添加cookie,提取代码:

1。)

if(!cookieExists("Mark_overlay")){
//SHOW OVERLAY
}

2)

//on overlay closing
 setCookie("Mark_overlay","true",10*365)