运行 一个 javascript 定时器在 aspx 页面上只出现一次
Run a javascript timer only once on aspx page
我的 Site.Master 页面中有一个功能可以在 30 秒后显示一个弹出窗口。但每次我加载一个子页面时,计时器统计结束并在 30 秒后再次弹出。
我需要在他们访问网站的整个过程中显示一次。这是我的代码。
setTimeout(function() {
// run event......
}, 30000);
可能最简单的方法是使用会话 cookie 来确定用户是否已经看到消息:
if(!document.cookie.match(/sawMessage/)) {
setTimeout(function() {
// run event......
document.cookie="sawMessage=true";
}, 30000);
}
您可以尝试设置一个标志,例如在本地存储中:
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);
}
这样只有在弹出窗口实际显示时才会设置标志。
我的 Site.Master 页面中有一个功能可以在 30 秒后显示一个弹出窗口。但每次我加载一个子页面时,计时器统计结束并在 30 秒后再次弹出。
我需要在他们访问网站的整个过程中显示一次。这是我的代码。
setTimeout(function() {
// run event......
}, 30000);
可能最简单的方法是使用会话 cookie 来确定用户是否已经看到消息:
if(!document.cookie.match(/sawMessage/)) {
setTimeout(function() {
// run event......
document.cookie="sawMessage=true";
}, 30000);
}
您可以尝试设置一个标志,例如在本地存储中:
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);
}
这样只有在弹出窗口实际显示时才会设置标志。