2014-09-11 46 views
-1

我想將cookie放到我的頁面上。
這是邏輯:
當我加載頁面時,我希望它加載彈出窗口或引導模式。但是模式只在瀏覽器處於活動狀態時才加載一次。只有在瀏覽器選項卡關閉或退出瀏覽器應用程序時纔會再次加載。我使用會話來做到這一點,但我更喜歡使用cookie來滿足個人喜好。

有沒有辦法用javascript做到這一點?
我試過$(window).load()和$(window).on('beforeunload',function());

的Javascript:Jquery Cookie:一次性使用Cookie

<script type="text/javascript"> 
    $(window).load(function() { 
     if($.cookie('firstLoad') == 'unloaded' || $.cookie('firstLoad') == 'null' || $.cookie('firstLoad') == null) { 
      $('#openLoading').modal('show'); 
      var time_exp = 1; 
      $.cookie('firstLoad','loaded',{ expires: time_exp }); 
     } 
    }); 

    $(window).on('beforeunload', function(){ 
     alert($.cookie('firstLoad')); 
     $.cookie('firstLoad','unloaded'); 
    }); 
</script> 

的問題是有時應用程序的瀏覽器將執行location.reload()和將重置以某種方式的cookie,使彈出的再次出現。
請提供解決方法,謝謝。

PS:VaR的time_exp中和到期:time_exp中是不得已而爲之,如果卸載不工作

回答

1

beforeunload事件時,關閉標籤不只是火。只要用戶轉到相同標籤中的新頁面(包括您網站上的一個頁面),它就會觸發。因此,每次用戶在頁面之間導航時,都會重置您的Cookie。

沒有事件可以用來告訴你用戶正在離開你的網站。您可以做的最接近的是而不是設置了expires,這樣cookie在瀏覽器退出時將自動被刪除。

您可以在模式中放置一個關閉按鈕,並在點擊時設置一個cookie,這樣您就知道用戶已經查看了模式,並且無論您決定選擇哪種模式,都不需要再次顯示它。