2009-08-03 12 views
3

Ich versuche zu erkennen, wenn ein Benutzer von der aktuellen Browser-Registerkarte auf eine andere Registerkarte wechselt. Listening for window.onblur funktioniert gut in Firefox, um festzustellen, wann der Benutzer den Fokus auf ein anderes Fenster ändert, aber es scheint nicht zu zünden, wenn der Benutzer zu einem anderen Tab wechselt. Es scheint jedoch, dass onfocus ausgelöst wird, wenn von einer anderen Registerkarte zu der fraglichen Registerkarte gewechselt wird.Ist es möglich zu erkennen, wenn ein Benutzer zu einem anderen Browser Tab wechselt?

Gibt es eine Möglichkeit zu erkennen, wenn der Benutzer von der aktuellen Registerkarte wechselt?

+0

** Update: ** Ab 2013 alle gängigen Browser unterstützen die so genannte [visiblity API] (https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API? redirectlocale = de-DE & redirectslug = DOM/Using_the_Page_Visibility_API). Sehen Sie hier für ein Beispiel: http://StackOverflow.com/a/19519701/603003 – ComFreek

Antwort

8

Offenbar in Firefox funktioniert es für Registerkarte wechseln, wenn Sie document.onBlur anstelle von window.onblur für den Ereignishandler verwenden.

+0

Wow, dachte nicht, das zu tun, aber es macht Sinn. Vielen Dank! –

3

Dieser Beispielcode schien für mich zu arbeiten. Ich habe den Code bearbeitet, um eine Warnmeldung anzuzeigen, wenn ich den Tab wechselte (bitte nicht tun). Es resultierte in einer Endlosschleife ;-) und musste FF mittels Taskmanager schließen.

Quelle: http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

function onBlur() { 
    document.body.className = 'blurred'; 
}; 
function onFocus(){ 
    document.body.className = 'focused'; 
}; 

if (/*@[email protected]*/false) { // check for Internet Explorer 
    document.onfocusin = onFocus; 
    document.onfocusout = onBlur; 
} else { 
    window.onfocus = onFocus; 
    window.onblur = onBlur; 
} 
+1

Was ist diese magische Prüfung für den Internet Explorer? –

+0

@maksymko - Das heißt [bedingte Kompilierung] (http://msdn.microsoft.com/en-us/library/7kx09ct1%28v=VS.80%29.aspx). –

Verwandte Themen