我有一个jquery函数,在页面加载时显示模式弹出窗口。有没有办法让每个用户会话只显示一次。我有很多帖子,但无论出于何种原因,我都无法让他们在我的剧本中工作。
我的剧本:
$(document).ready(function() {
$(window).load(function(){
$( "#dialog1" ).dialog();
});
});
模态弹出窗口由:
组成<div id="dialog1" title="IMPORTANT!">
<div class="imaindateselleft_padding_right_red">Content here</div>
</div>
先知道你的时间和帮助。
答案 0 :(得分:2)
实现此目的的一种方法是与cookie集成。让它显示对话框并存储对话框已在cookie中显示的值,以便下次不会显示。
在这种方法中,我使用的是jQuery Cookie。 (随意使用vanilla javascript到r / w cookies)。我还假设您使用jQuery UI来调用dialog
。
$(document).ready(function() {
var dialogShown = $.cookie('dialogShown');
// On newer versions of js-cookie, API use:
// var dialogShown = Cookies.get('dialogShown');
if (!dialogShown) {
$(window).load(function(){
$( "#dialog1" ).dialog();
$.cookie('dialogShown', 1);
// On newer versions of js-cookie, API use:
// Cookies.set('dialogShown', 1);
});
}
else {
$("#dialog1").hide();
}
});
上面的代码所做的只是在之前弹出对话框后设置cookie。允许同一用户再次看到对话框的唯一方法是cookie expires(您可以设置),或者用户清除Cookie。
编辑:实现此目的的第二种方法是,如果浏览器支持,您可以使用localStorage。
$(document).ready(function() {
var dialogShown = localStorage.getItem('dialogShown')
if (!dialogShown) {
$(window).load(function(){
$( "#dialog1" ).dialog();
localStorage.setItem('dialogShown', 1)
});
}
else {
$("#dialog1").hide();
}
});