5

我想知道是否有办法在页面失去焦点时禁用自动页面刷新。当它再次获得焦点时,我已经使用它设置了刷新:

window.onblur= function() {window.onfocus= function () {location.reload(true)}};

我从这里找到的。我最初使用以下方法自动刷新页面:

<meta http-equiv="refresh" content="60"/>

无论状态如何,它都会每 60 秒重新加载一次页面。

我想让页面仅在焦点集中时自动刷新,当页面再次获得焦点时进行初始刷新。在获得焦点后,它应该按时间间隔刷新,直到失去焦点。

谢谢

4

2 回答 2

5

您不能覆盖这种刷新,您可能应该使用 JS 计时器来刷新,如下所示(删除<meta http-equiv="refresh" content="60" />标签后):

var hasFocus;

window.onblur = function() {
    hasFocus = false;
}

window.onfocus = function(){
    hasFocus = true;
}

setInterval(reload, 60*1000);

function reload(){
    if(hasFocus){
        location.reload(true);
    }
}
于 2013-06-15T21:47:33.417 回答
1

我最终修改了来自 Mostafa Torbjørn Berg 的代码,以保持焦点刷新,并在页面获得焦点时让页面每 60 秒自动刷新一次。

var hasFocus= true;
window.onblur = function() {
    hasFocus = false;
}
window.onfocus = function(){
    location.reload(true);
}
setInterval(reload, 60*1000);
function reload(){
    if(hasFocus){
        location.reload(true);
    }
}
于 2013-06-15T22:25:10.793 回答