显示模态 - 每天只显示一次

时间:2014-01-21 08:40:11

标签: javascript jquery

我正在使用“显示模式”在我的网站加载时加载弹出窗口。但是,每次加载页面时都会加载弹出窗口。由于访问者可以访问多个页面或多个实例,因此这种限制对我们的访问者体验不利。

以下是我在加载页面时加载显示模式的js。

jQuery(document).ready(function($) {
/* Pop-up
================================================= */

$(function() {
    function showpanel() {
    $('.reveal-modal').reveal({
        animation: 'fade',
        animationspeed: 800
    });
    }
    setTimeout(showpanel, 4000)
   }); 
});

我可以添加什么来确保揭密模式在特定日期只加载一次,无论访问者访问多少个不同页面?

非常感谢任何协助。

由于

3 个答案:

答案 0 :(得分:2)

实现这一目标的最简单方法是cookie只能持续24小时。

您要做的是检查是否有Cookie并在没有

的情况下显示对话框
if($.cookie('MyCookie') != 'DialogShown'){
  showpanel();
  setCookie();
}

以下是设置它的代码

function setCookie(){
    $.cookie('MyCookie', 'DialogShown',
      {
         expires: date.getTime() + (24 * 60 * 60 * 1000) // now add 24 hours
      });
}

但请注意,用户可能已将其浏览器配置为拒绝Cookie,并且在英国(可能还有其他国家/地区{}有{}}使用Cookie的网站。

答案 1 :(得分:2)

您需要持久存储,例如Cookie,localStorage或服务器端存储。

$(function() {
    if ( localStorage.getItem('seen') != (new Date()).getDate()) {
        setTimeout(showpanel, 4000);
    }
});


function showpanel() {
    $('.reveal-modal').reveal({
        animation: 'fade',
        animationspeed: 800
    });

    localStorage.setItem('seen', (new Date()).getDate());
}

MDN

为旧版浏览器提供了填充功能

答案 2 :(得分:1)

对于客户端解决方案,您可以使用cookie在用户的浏览器中设置并将其设置为1天到期。

$.cookie('the_cookie', 'the_value', { expires: 1 });

有关详细信息,请参阅: https://github.com/carhartl/jquery-cookie

编辑:

在您的html页面中包含Jquery-cookie插件,然后添加以下代码

$(function() {
    if($.cookie('alreadyShow') === null) {
        $.cookie('alreadyShow', true, {expires: 1});

        $('.reveal-modal').reveal({
           animation: 'fade',
           animationspeed: 800
       });
    }
});