2013-06-15 20 views
5

Zastanawiam się, czy istnieje sposób na wyłączenie automatycznego odświeżania strony, gdy strona traci ostrość. Mam to konfigurację, aby odświeżyć gdy zyski skupić się ponownie już za pomocą tego:Wyłącz odświeżanie strony w przypadku utraty ostrości

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

że znalazłem od here. Pierwotnie miałem automatyczne odświeżanie strony, używając:

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

Która odświeża stronę co 60 sekund niezależnie od stanu.

Chcę, aby strona miała automatyczne odświeżanie tylko w trybie fokusu z początkowym odświeżaniem nadchodzącym, gdy strona ponownie uzyska skupienie. Po zwiększeniu ostrości powinien odświeżać się w przedziale czasu do momentu utraty ostrości.

Dzięki

+0

Możesz spróbować użyć funkcji API widoczności strony - http://www.w3.org/TR/page-visibility/ – gearsdigital

Odpowiedz

5

Nie można zastąpić ten rodzaj odświeżenia, powinieneś użyć timera JS, aby odświeżyć, coś takiego (po usunięciu znacznika <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

skończyło się modyfikowanie kodu z Mostafa Torbjørn Berg w celu zachowania odświeżania fokusu i automatyczne odświeżanie strony co 60 sekund, gdy strona jest aktywna.

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); 
    } 
} 
Powiązane problemy