如何仅在首次访问时显示弹出对话框?
How to show pop up dialog only for first visit?
我在我的网页上创建了一个弹出窗口 div
。我只想在第一次加载时显示它,而不是在任何其他页面加载时显示它。
下面是JS代码和HTML。我尝试了很多方法,比如localstorage和cookies,但是都失败了。
$(document).ready(function() {
var id = '#dialog';
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$('#mask').css({
'width': maskWidth,
'height': maskHeight
});
$('#mask').fadeIn(500);
$('#mask').fadeTo("fast", 0.9);
var winH = $(window).height();
var winW = $(window).width();
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
$(id).fadeIn(1000);
$('.window #close').click(function(e) {
e.preventDefault();
$('#mask').hide();
$('.window').hide();
});
$('#mask').click(function() {
$(this).hide();
$('.window').hide();
});
});
<div id="boxes">
<div style= "display:none;" id="dialog" class="window">
<div id="close"><a href="#" class="close agree"><i class="fa fa-power-off"></i></a></div>
<div id="lorem"><div><img src="<?=base_url()?>front/images/mobile_pop_bg.png" alt="get ealaniah mobile app" title="get mobile app" ></div></div>
</div>
<div style="width: 1478px; font-size: 32pt; color:white; height: 602px; display: none; opacity: 0.8;" id="mask"></div>
</div>
jQuery(window).load(function() {
if (sessionStorage.getItem('dontLoad') == null))
// code to show popup
sessionStorage.setItem('dontLoad', 'true');
}
});
sessionStorage 属性 允许您访问会话存储对象。 sessionStorage 与 Window.localStorage 类似,唯一的区别是 localStorage 中存储的数据没有设置过期时间,sessionStorage 中存储的数据会在页面会话结束时被清除。只要浏览器打开,页面会话就会持续,并在页面重新加载和恢复后继续存在。在新选项卡或 window 中打开页面将导致启动新会话,这与会话 cookie 的工作方式不同。
var Foo = function(){
var hasShownLocalStorageName = 'bob';
this.HasShown = function() {
localStorage.getItem(hasShownLocalStorageName) || false
};
this.SetShown = functioN(){
localStorage.setItem(hasShownLocalStorageName ,true);
};
}
用法
if (Foo.HasShown())
{
//do popuplogic
Foo.SetShown()
}
请注意,用户可以随时重置您的本地存储。但如果您使用 cookie,同样的基本原则也适用。
我在我的网页上创建了一个弹出窗口 div
。我只想在第一次加载时显示它,而不是在任何其他页面加载时显示它。
下面是JS代码和HTML。我尝试了很多方法,比如localstorage和cookies,但是都失败了。
$(document).ready(function() {
var id = '#dialog';
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$('#mask').css({
'width': maskWidth,
'height': maskHeight
});
$('#mask').fadeIn(500);
$('#mask').fadeTo("fast", 0.9);
var winH = $(window).height();
var winW = $(window).width();
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
$(id).fadeIn(1000);
$('.window #close').click(function(e) {
e.preventDefault();
$('#mask').hide();
$('.window').hide();
});
$('#mask').click(function() {
$(this).hide();
$('.window').hide();
});
});
<div id="boxes">
<div style= "display:none;" id="dialog" class="window">
<div id="close"><a href="#" class="close agree"><i class="fa fa-power-off"></i></a></div>
<div id="lorem"><div><img src="<?=base_url()?>front/images/mobile_pop_bg.png" alt="get ealaniah mobile app" title="get mobile app" ></div></div>
</div>
<div style="width: 1478px; font-size: 32pt; color:white; height: 602px; display: none; opacity: 0.8;" id="mask"></div>
</div>
jQuery(window).load(function() {
if (sessionStorage.getItem('dontLoad') == null))
// code to show popup
sessionStorage.setItem('dontLoad', 'true');
}
});
sessionStorage 属性 允许您访问会话存储对象。 sessionStorage 与 Window.localStorage 类似,唯一的区别是 localStorage 中存储的数据没有设置过期时间,sessionStorage 中存储的数据会在页面会话结束时被清除。只要浏览器打开,页面会话就会持续,并在页面重新加载和恢复后继续存在。在新选项卡或 window 中打开页面将导致启动新会话,这与会话 cookie 的工作方式不同。
var Foo = function(){
var hasShownLocalStorageName = 'bob';
this.HasShown = function() {
localStorage.getItem(hasShownLocalStorageName) || false
};
this.SetShown = functioN(){
localStorage.setItem(hasShownLocalStorageName ,true);
};
}
用法
if (Foo.HasShown())
{
//do popuplogic
Foo.SetShown()
}
请注意,用户可以随时重置您的本地存储。但如果您使用 cookie,同样的基本原则也适用。