失去焦点时禁用页面刷新

时间:2013-06-15 21:36:31

标签: php javascript html

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

window.onblur= function() {window.onfocus= function () {location.reload(true)}};
我从here找到了。我最初使用以下内容自动刷新页面:

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

无论状态如何,每60秒重新加载页面。

我想让页面只有在焦点时才会自动刷新,当页面再次获得焦点时会进行初始刷新。在获得焦点后,它应该在时间间隔刷新,直到焦点丢失。

由于

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:1)

我最终修改了MostafaTorbjørnBerg的代码,以保持焦点上的刷新,并在页面聚焦时每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);
    }
}