我的Site.Master页面中有一个功能,在30秒后显示一个弹出窗口。但是每次我加载一个子页面时,计时器会在30秒后重新弹出并再次弹出。
我需要它一次显示,他们访问网站的整个时间。这是我的代码。
setTimeout(function() {
// run event......
}, 30000);
答案 0 :(得分:2)
可能最容易使用会话cookie来确定用户是否已经看过该消息:
if(!document.cookie.match(/sawMessage/)) {
setTimeout(function() {
// run event......
document.cookie="sawMessage=true";
}, 30000);
}
答案 1 :(得分:2)
您可以尝试设置标志,例如在本地存储中:
if (localStorage.getItem("popup") != "1") {
localStorage.setItem("popup", "1");
setTimeout(function() {
// run event......
}, 30000);
}
编辑:
如果您想确保弹出窗口至少显示一次,请改用此版本:
if (localStorage.getItem("popup") != "1") {
setTimeout(function() {
localStorage.setItem("popup", "1");
// run event......
}, 30000);
}
这样只有弹出窗口实际显示时才会设置标志。