我在使用Bootstrap主题的wordpress页面上工作。页面加载上有一个模态窗口,上面有一个注册表单。用户无法在不填写表单的情况下看到内容。我的问题是whenevr用户回到该页面它显示模态窗口,我想将其限制为曾经是一个用户。我怎么能实现这一点。
这是我对模态的Js:
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#DownloadSignup').modal('show');
});
</script>
以下是我尝试过但不起作用的内容:
<script>
jQuery(document).ready(function($) {
var isshow = localStorage.getItem('status');
// alert(isshow);
if (isshow == null) {
localStorage.setItem('isshow', 1);
// Show popup here
$('#DownloadSignup').modal('show');
} else if(isshow != null) {
$('#DownloadSignup').modal('hide');
}
});
</script>
答案 0 :(得分:2)
您需要使用缓存或会话。
如果还希望将其用于非登录用户,则应使用缓存。每次访问网站时,需要检查缓存是否存在于系统上,如果已经设置,则不显示模式。这些将在第一次访问时设置,因此对于之后的每次访问,它将在那里隐藏模态。
如果您需要登录用户,则应使用会话,遵循与上述相同的逻辑。在会话中设置一个值并在显示模态之前检查它是否存在。
答案 1 :(得分:2)
更改此
localStorage.setItem('isshow', 1);
到
localStorage.setItem('status', 'shown');
答案 2 :(得分:0)
在您的网页中使用此代码,我希望它能为您提供帮助。
<script>
if (!localStorage['someName']) {
localStorage['someName'] = 'yes';
myFunction();
}
</script>
答案 3 :(得分:0)
如果你检查是否设置了本地存储,我猜你没有正确检查它,那么你必须检查它的类型和值,如下所示......
var = localStorage.getItem('status');
if (localStorage.getItem("isshow") === null) {
//...
}
答案 4 :(得分:0)
您是否尝试过使用Jquery Cookie。您可以使用此库https://github.com/carhartl/jquery-cookie
$.cookie("Show", 1, {
expires : 1, //expires in 1 day
path : '/', //The value of the path attribute of the cookie
//(default: path of page that created the cookie).
domain : 'yourdomain.com', //The value of the domain attribute of the cookie
//(default: domain of page that created the cookie).
secure : true //If set to true the secure attribute of the cookie
//will be set and the cookie transmission will
//require a secure protocol (defaults to false).
});
如果您对JQuery不感兴趣,请查看有关如何使用本机JS设置的其他答案。 https://stackoverflow.com/a/1460174/1411055