【问题标题】:Reveal Modal display only once仅显示一次模态显示
【发布时间】:2016-04-14 22:42:45
【问题描述】:
我正在使用基础模态来制作弹出窗口。我如何修改此代码,以便每个用户每天只出现一次弹出窗口。谢谢
<script>
$(document).ready(function(){$('#myModal').foundation('reveal', 'open')});
</script>
【问题讨论】:
标签:
javascript
jquery
modal-dialog
popup
zurb-foundation
【解决方案1】:
如果您不希望它在单个页面视图中多次打开,您可以添加一个类来防止重新打开。注意:not 选择器的使用
$(document).ready(function(){$('#myModal:not(.opened)').foundation('reveal', 'open')}).addClass('opened');
如果您想阻止模式在一段时间内多次打开,请查看此 MDN 示例,了解如何设置具有过期时间的 cookie,其中 doSomethingOnlyOnce 是您要插入的 cookie 的名称稍后可以在 document.cookie 中检查。
function doOnce() {
if (document.cookie.replace(/(?:(?:^|.*;\s*)doSomethingOnlyOnce\s*\=\s*([^;]*).*$)|^.*$/, "$1") !== "true") {
alert("Do something here!");
document.cookie = "doSomethingOnlyOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";
}
}
您希望将 alert() 调用替换为您的代码,并以编程方式为 cookie 字符串的 expires 属性生成日期。
更多信息在这里:https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie