我想把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是最后的手段
答案 0 :(得分:1)
关闭标签时,beforeunload
事件不会触发。只要用户转到同一选项卡中的新页面(包括您网站上的页面),它就会触发。因此,每次用户在页面之间导航时,您都会重置Cookie。
没有任何事件可以用来告诉您用户专门离开您的网站。您最接近的是 not 设置expires
,以便在浏览器退出时自动删除Cookie。
你可以在模态中设置一个关闭按钮,并在点击它时设置一个cookie,这样你就知道用户已经查看了模态,你不需要再次显示它,无论你决定多长时间。