【问题标题】:Jquery Cookie : one time use cookieJquery Cookie:一次性使用 cookie
【发布时间】:2014-09-11 23:03:24
【问题描述】:

我想把 cookie 放到我的页面上。
这是逻辑:
当我加载页面时,我希望它加载弹出窗口或引导模式。但是模式只在浏览器处于活动状态时加载一次。并且只有在浏览器选项卡关闭或退出浏览器应用程序时才会再次加载。我已经使用 session 来执行此操作,但我更喜欢使用 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>

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

PS:var time_exp 和 expires :如果卸载不起作用,time_exp 是最后的手段

【问题讨论】:

    标签: javascript jquery cookies


    【解决方案1】:

    beforeunload 事件不仅会在标签页关闭时触发。每当用户进入同一选项卡中的新页面时,它都会触发,包括您网站上的页面。因此,每次用户在页面之间导航时,您都会重置 cookie。

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

    您可以在模式中放置一个关闭按钮,并在单击它时设置一个 cookie,这样您就知道用户已经查看了该模式,并且无论您决定多久都不需要再次显示它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多