2013-06-15 14 views
5

Ich frage mich, ob es eine Möglichkeit gibt, eine automatische Seitenaktualisierung zu deaktivieren, wenn eine Seite den Fokus verliert. Ich habe es Setup zu aktualisieren, wenn es schon wieder konzentrieren Gewinne mit diesem:deaktivieren Seite aktualisieren bei Fokus verlieren

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

, die ich von here gefunden. Ich hatte ursprünglich die Seite automatisch aktualisieren mit:

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

Welche die Seite alle 60 Sekunden unabhängig von Status neu geladen.

Ich möchte die Seite die automatische Aktualisierung nur im Fokus mit der ersten Aktualisierung kommen, wenn die Seite wieder Fokus erhält. Nach der Fokusverstärkung sollte es im Zeitintervall aktualisiert werden, bis der Fokus verloren geht.

Dank

+0

Sie könnten versuchen, API für die Seitensichtbarkeit zu verwenden - http://www.w3.org/TR/page-visibility/ – gearsdigital

Antwort

5

Sie nicht diese Art von Refresh aufheben kann, sollten Sie wahrscheinlich einen JS-Timer zu aktualisieren, so etwas wie (nach dem Entfernen des <meta http-equiv="refresh" content="60" />-Tag) verwenden:

var hasFocus; 

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

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

setInterval(reload, 60*1000); 

function reload(){ 
    if(hasFocus){ 
     location.reload(true); 
    } 
} 
1

Ich landete Ändern des Codes von Mostafa Torbjørn Berg, um die Aktualisierung im Fokus zu halten und die Seite automatisch alle 60 Sekunden zu aktualisieren, während die Seite den Fokus hat.

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); 
    } 
} 
Verwandte Themen