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 に答える