2017-03-17 82 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