我会尽量简洁明了!我的一半问题是正确表达我的问题;)
我在我的网站上设置了一个粘性弹出页面,以收集新闻简报的电子邮件,并且进行了设置,以便localStorage记住弹出窗口的关闭状态(这样,我们网站的访问者就不会烦恼的是它会在每次加载页面时弹出。
这很好,但是今天我认为最好添加一个按钮,当单击该按钮时可以打开弹出窗口(因为它将一直保持关闭状态,直到他们清除缓存,否则他们可能想在不知情的情况下访问弹出窗口)为此)。
我正在使用Weebly,我必须在菜单导航中获取按钮的唯一选项是添加一个外部链接页面,然后使用javascript剥离插入的 http:// 虚弱地注入代码以调用我的弹出窗口。这可行,但是当我移至另一页面时,弹出窗口在关闭后即打开。奇怪的是,这仅发生一次,然后便记住了关闭状态。
这似乎是可重复的,因此我的逻辑/代码中肯定有一个缺陷,但是我无法弄清楚它是什么,非常感谢任何提示或建议!
要查看有问题的按钮,请执行以下操作:
位于顶部导航菜单最右侧的 + 。
从页脚中调用的代码是:
<!--Use localStorage To Hide Signup Box If Closed-->
<script src="https://www.reclaimdesign.org/uploads/2/4/9/8/24985082/custom_themes/606760176814155089/files/hide-signup-min.js" async="async"></script>
$(window).on("load", function() {
$("a[href='/page.html']").attr("href", "javascript:(function(){$('.signup').css('display', 'block');})()");
});
这是hide-signup.js中的代码:
$(document).ready(function() {
$('.signup').css('display', 'block');
$PopUp = $('.signup');
var hide = JSON.parse(localStorage.getItem('hide'));
if (hide) {
$PopUp.hide();
} else {
// initialize value in case it hasn't been set already
localStorage.setItem('hide', false);
}
$('.closebtn').click(function() {
$('.signup' ).hide();
// toggle the boolean by negating its value
var hide = JSON.parse(localStorage.getItem('hide'));
localStorage.setItem('hide', !hide);
});
});
答案 0 :(得分:0)
正在发生的事情:
1-初始加载(新用户):如代码所示,皮料为假
2-用户单击关闭按钮:隐藏变为真
3-用户单击+按钮:没有任何反应(应将本地存储中的hide更改为true)
4-用户再次单击关闭按钮:隐藏变为假(这将使弹出窗口显示在另一个页面加载中)
第三步,您需要制作
localStorage.setItem('hide', false);