覆盖仅使用cookie显示一次

时间:2015-10-14 06:24:58

标签: javascript jquery

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

我正在使用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";
  }
});

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

检查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以及是否显示overlay.2。)然后在关闭叠加时添加cookie,absctact代码:

<强> 1)。

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

<强> 2)。

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