Javascript cookie永远消失



我有一个模式弹出窗口,询问用户是否愿意订阅我的时事通讯。如果用户关闭模态,我不希望它再次出现。使用我下面的代码,弹出窗口每天频繁显示多次。我需要添加什么,这样一旦被驳回,弹出窗口就不会再次出现?

//custom.js
if (!readCookie("close_subcribeModal")) {
function subcribeModal() {
$("#subcribeModal").modal("show");
}
setTimeout(function () {
subcribeModal();
}, 5000);
}

网页:

@if(!isset($_COOKIE['close_subcribeModal']) && @$_COOKIE['close_subcribeModal'] != "1")
<div id="subcribeModal" tabindex="-1" role="dialog" aria-labelledby="subcribeModalLabel" aria-hidden="true">
<div role="document">
<div class="modal-content">
<button type="button" id="subcribeModal__close" class="cancel" data-dismiss="modal" aria-label="Close"></button>
<div class="modal-body">
<h2 class="title">Welcome</h2>
<p>Would you like to receive our weekly newsletter?</p>
<x-mail.newsletter-subscription />
</div>
</div>
</div>
</div>
@endif

看起来您正在使用Bootstrap,当模式窗口被隐藏(或关闭(时,事件hidden.bs.modal被触发。

因此,如果事件发生,我们将创建一个cookie(将其添加到视图底部(

$("#subcribeModal").on('hidden.bs.modal', function() {
Cookies.set('modalShowed','active');
});

if (!readCookie("close_subcribeModal"))更改为if(Cookies.get('modalShowed') != 'active')并在您的视图中去掉这个if语句@if(!isset($_COOKIE['close_subcribeModal']) && @$_COOKIE['close_subcribeModal'] != "1")

最新更新