2017-03-17 86 views
0

下面的代码在页面加载后显示60秒后弹出窗口。它存储一个cookie,防止弹出窗口被多次显示。该cookie随后在会话结束时过期。Popup处理跨站点的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'); 
     } 
     }); 
} 

感谢您的帮助,我是新来这...

回答

0

而不是简单地保存一个cookie,设置cookie值的时间戳(以秒),然后检查cookie是否存在,以及当前时间戳是否与当前时间戳相比较为<。

$(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'); 
      } 
     } 
     }); 
} 
+0

谢谢,但我似乎无法得到这个工作。当我浏览网站时,弹出窗口不显示。该Cookie在页面加载时仍立即设置。不确定这是否正确? – godrob