页面重新加载时执行某些操作

时间:2013-07-10 09:53:35

标签: javascript jquery

我有一个页面,在此页面上,当您转到该页面或重新加载页面时,会出现一个弹出窗口。我的页面也会每分钟重新加载一次。

我使用此代码:

if(window.location.href == "http://local.mysite.com:8080/")
{
   setInterval("location.reload(true)", 60000);
};

我想做的是当页面重新加载时弹出窗口没有显示。

3 个答案:

答案 0 :(得分:1)

在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);
}

答案 1 :(得分:0)

此处location.reload(true)每分钟重新加载您的网页。这不应该发生 相反,你应该在弹出窗口或其他元素上使用setInterval

答案 2 :(得分:0)

首先,您不应该使用setInterval,因为无论如何都会重新加载页面。一个简单的setTimeout就足够了。

此外,不要将字符串用作这类函数的第一个参数,因为它会导致使用eval的JavaScript,这会导致关于全局变量的蠢事。尝试使用闭包:setTimeout(function () { location.reload(true); }, 60000);

现在解决页面重新加载的弹出问题。您只需将参数添加到您的网址,如下所示:http://local.mysite.com:8080/?reloaded=true,并从JavaScript中读取此参数。这需要您将location.reload交换为location.href = 'http://local.mysite.com:8080/?reloaded=true';.

之类的内容