【问题标题】:disable page refresh on lose focus失去焦点时禁用页面刷新
【发布时间】:2013-06-12 06:18:06
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

标签: php javascript html


【解决方案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);
    }
}

【讨论】:

    【解决方案2】:

    你不能覆盖这种刷新,你应该使用一个 JS 定时器来刷新,像这样(在删除 &lt;meta http-equiv="refresh" content="60" /&gt; 标签之后):

    var hasFocus;
    
    window.onblur = function() {
        hasFocus = false;
    }
    
    window.onfocus = function(){
        hasFocus = true;
    }
    
    setInterval(reload, 60*1000);
    
    function reload(){
        if(hasFocus){
            location.reload(true);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-15
      • 2018-04-30
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多