用于跨站点弹出处理的Cookie

时间:2017-03-17 14:38:41

标签: javascript jquery cookies

下面的代码在页面加载后60秒后显示一个弹出窗口。它存储一个cookie,阻止弹出窗口多次显示。然后cookie会在会话结束时到期。

但是,如果您浏览多个页面,则不会触发弹出窗口。我需要在60秒内导航网站时触发弹出窗口,而不仅仅是在60秒内在输入页面上显示,如果这有意义的话?

以下是代码:

 $(document).ready(function() {
       if($.cookie('form-cookie') == null)
       {
           setTimeout(function(){
           $('#form').modal('show');
           }, 60000);
           $.cookie('form-cookie', 'str');
       }
       else
      {
          $("div#form.modal").css('display','none');
      }
      });
 }

感谢您的帮助,我是新手......

1 个答案:

答案 0 :(得分:0)

不是简单地保存cookie,而是将cookie值设置为时间戳(以秒为单位),然后检查cookie是否存在以及当前时间戳是否为< 60与当前时间戳进行比较。

$(document).ready(function() {
       var seconds = new Date().getTime() / 1000;
       if($.cookie('form-cookie') == null)
       {
           setTimeout(function(){
           $('#form').modal('show');
           }, 60000);
           $.cookie('form-cookie', seconds);
       }
       else
      {
          var diff=seconds-$.cookie('form-cookie')*1;
          if (diff<60){
            setTimeout(function(){
              $('#form').modal('show');
             }, 60000); //only for the time remaining, use diff*1000
          }else{
              $("div#form.modal").css('display','none');
          }
      }
      });
 }