Jquery Cookie:一次性使用Cookie

Jquery Cookie : one time use cookie

本文关键字:Cookie Jquery 一次性      更新时间:2023-09-26

我想把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>

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

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

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

没有任何事件可以用来告诉你用户要离开你的网站。您可以做的最接近的事情是而不是设置expires,这样当浏览器退出时,cookie将自动删除。

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