Jquery Cookie:一次性使用cookie

时间:2014-09-11 09:39:18

标签: javascript jquery cookies

我想把cookie放到我的页面上 这是逻辑:
当我加载页面时,我希望它加载弹出窗口或引导程序模式。但是模式只在浏览器处于活动状态时加载一次。并且仅在浏览器选项卡关闭或退出浏览器应用程序时再次加载。我使用会话来做这件事,但我更喜欢使用cookie来满足个人喜好
有没有办法用javascript做到这一点?
我已尝试使用$(window).load()和$(window).on(' beforeunload',function());

Javascript:

<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>

问题是有时候app浏览器会执行location.reload()并以某种方式重置cookie并再次弹出窗口。
请提供解决方案,谢谢。

PS:var time_exp和expires:如果卸载没有工作,time_exp是最后的手段

1 个答案:

答案 0 :(得分:1)

关闭标签时,beforeunload事件不会触发。只要用户转到同一选项卡中的新页面(包括您网站上的页面),它就会触发。因此,每次用户在页面之间导航时,您都会重置Cookie。

没有任何事件可以用来告诉您用户专门离开您的网站。您最接近的是 not 设置expires,以便在浏览器退出时自动删除Cookie。

你可以在模态中设置一个关闭按钮,并在点击它时设置一个cookie,这样你就知道用户已经查看了模态,你不需要再次显示它,无论你决定多长时间。