我有一个页面,在此页面上,当您转到该页面或重新加载该页面时,会出现一个弹出窗口。我的页面也每分钟重新加载一次。
我使用这段代码:
if(window.location.href == "http://local.mysite.com:8080/")
{
setInterval("location.reload(true)", 60000);
};
我想做的是当页面重新加载时弹出窗口不显示。
我有一个页面,在此页面上,当您转到该页面或重新加载该页面时,会出现一个弹出窗口。我的页面也每分钟重新加载一次。
我使用这段代码:
if(window.location.href == "http://local.mysite.com:8080/")
{
setInterval("location.reload(true)", 60000);
};
我想做的是当页面重新加载时弹出窗口不显示。
在 url 中添加一个参数来检测页面是第一次加载还是重新加载,试试这个:
if (location.href.indexOf("http://local.mysite.com:8080/") === 0) {
var url = location.href;
if (url.indexOf('r=1') === -1) {
console.log('show popup');
url += url.indexOf('?') === -1 ? '?r=1' : '&r=1';
}
setTimeout(function() {
location.href = url;
}, 60000);
}
这location.reload(true)
是每分钟重新加载您的页面。那不应该发生。
相反,您应该setInterval
在弹出窗口或其他一些元素上使用。
首先,您不应该setInterval
为此使用,因为无论如何都会重新加载页面。一个简单的setTimeout
就足够了。
此外,不要将字符串用作此类函数的第一个参数,因为它会导致 JavaScript using eval
,这可能会导致有关全局变量的问题。尝试使用闭包:setTimeout(function () { location.reload(true); }, 60000);
.
现在解决页面重新加载时的弹出问题。您可以像这样简单地向您的 url 添加一个参数:http://local.mysite.com:8080/?reloaded=true
,然后从 JavaScript 中读取它。这将要求您将其交换location.reload
为类似location.href = 'http://local.mysite.com:8080/?reloaded=true';.