我如何让通知栏在每个会话中仅显示一次
How would I get a notification bar to display only once per session?
我有一个通知栏,我只想在每个会话中显示一次,或者可能在预定的时间内不显示通知。我正在使用会话存储,但不幸的是我无法让它正常工作。
谢谢
这是我的代码----------->
<script>
$(document).ready(function() {
var $alertdiv = $('<div id = "alertmsg"/>');
$alertdiv.text("Join our email list and receive the latest updates at 3Elements Review.");
$alertdiv.bind('click', function() {
$(this).slideUp(200);
});
$(document.body).append($alertdiv);
$("#alertmsg").fadeIn("slow");
setTimeout(function() { $alertdiv.fadeOut(400) }, 6000);
});
$(window).load(function(){
if(typeof(window.sessionStorage) != 'undefined') {
$("#alertmsg").val(window.sessionStorage.getItem('mySessionVal'));
window.sessionStorage.setItem('mySessionVal', $("#alertmsg").val());
window.sessionStorage.setItem('storedWhen', (new Date()).getTime());
}
});
</script>
没有明显的理由使用 window.onload for sessionStorage,DOM ready 应该就足够了?
另外,在显示消息之前,您需要检查存储中是否存在该值,否则消息将始终显示:
$(document).ready(function() {
if (typeof window.sessionStorage != undefined) {
if (!sessionStorage.getItem('mySessionVal')) {
// ^^^ you can check time here as well ?
$('<div />', {
id : "alertmsg",
text : "Join our email list and receive the latest updates at 3Elements Review.",
on : {
click: function() {
$(this).slideUp(200);
}
}
}).appendTo('body').fadeIn("slow").delay(6000).fadeOut("slow");
sessionStorage.setItem('mySessionVal', true);
sessionStorage.setItem('storedWhen', Date.now());
}
}
});
小提琴
相关文章:
- ¿如何每天只显示一次特定的容器
- 谷歌图表在运行应用程序时只能显示一次
- 点击时的qtip2只显示一次
- 每个用户只显示一次放大弹出窗口
- Bootstrap Alert只显示一次
- 每次访问显示一次警报
- 每个用户仅显示一次弹出窗口
- Jquery 循环一次或在数据数组中显示一次数据
- 按钮仅显示一次图像
- 弹出窗口不会根据需要在每个会话中显示一次(如客户端所述)
- Bootstrap Modal仅显示一次
- 每隔X秒显示一次警报框,但请先等待Y秒
- jQuery UI对话框在页面上只显示一次
- 每 3 小时显示一次对话框
- 背景图像旋转器.php + jQuery每4秒显示一次随机照片
- Lightswitch HTML 自定义控件仅显示一次
- 我如何让通知栏在每个会话中仅显示一次
- 如何让网页显示一次,并且不再向用户显示
- 使我的简介页面仅按用户或计算机显示一次
- 动画 GIF 背景仅显示一次