我有一个弹出页面加载的模态...
<script type="text/javascript">
jQuery(document).ready(function($) {
setTimeout(function() {
$.UIkit.modal('#newsletter-20').show();
}, 3000);
});
</script>
这一切都很好,但我需要它每个用户/浏览器会话只出现一次...因为我是菜鸟我不知道如何在查看此信息后实现这一点&gt; http://www.w3schools.com/js/js_cookies.asp
请求帮助!
答案 0 :(得分:0)
你有没有看过sessionStorage
?使用sessionStorage
,您可以在每个会话本地存储一个简单的布尔标志,然后在显示模态对话框之前测试该标志是否存在。
当浏览器关闭时,浏览器将清除sessionStorage
的内容,这意味着只有访问者正在使用他们的浏览器,或者直到您手动将数据更改为假,才会保留该值值。
例如:
jQuery(document).ready(function($) {
setTimeout(function() {
if (!sessionStorage.previouslyVisited) {
$.UIkit.modal('#newsletter-20').show();
sessionStorage.previouslyVisited = true;
}
}
});
答案 1 :(得分:0)
确定您的用户会话是否处于活动状态需要服务器端代码。因此,使用cookie很可能是更容易解决的问题。
$(document).ready(function() {
var cookieValue = $.cookie("user-session");
if (!cookieValue || !cookieValue.length) {
setTimeout(function() {
$.UIkit.modal('#newsletter-20').show();
$.cookie("user-session", "1");
}, 3000);
}
});
注意 :要让$ .cookie工作,你必须使用jQuery cookie插件。 cdn链接就是这个 - https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js
但这是可选的,如果你想要一个传统的javascript获取和设置cookie的方式,你也可以使用它。但是jquery cookie的方式更简单。