2014-09-11 44 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,这样您就知道用户已经查看了模式,并且无论您决定选择哪种模式,都不需要再次显示它。