Solo estoy repitiendo lo que han dicho Shedal y roosteronacid, necesitas que el DOM esté listo antes de que puedas vincular eventos a él, de lo contrario, en algunos navegadores la computadora dirá que no y morirá silenciosamente.
Para hacer esto se utiliza la función jQuery ready() se explica por roosteronacid:
var focusFlag = 1;
jQuery(document).ready(function(){
jQuery(window).bind("focus",function(event){
focusFlag = 1;
}).bind("blur", function(event){
focusFlag = 0;
});
});
lo que hace es la función ready() sólo se disparará y ejecutar el código en su interior cuando el DOM tiene completamente cargado desde el servidor.
Los únicos cambios reales que he hecho es que yo abrazo mis soportes para facilitar la lectura, pero es una preferencia personal.
A riesgo de sonar idiota, que han puesto que dentro de un $ (document) .ready bloquear? – karim79
No, no los puse dentro de un bloque $ (document) .ready. Pero encontré otra manera que no usa JQuery: http://www.thefutureoftheweb.com/blog/detect-browser-window-focus –
@Mickey Shine: intente colocarlos dentro de un bloque $ (document) .ready. – karim79