vista versión omitir navegadores navegador modo instálate google extensiones extension esta cómo cual crear con compatible compatibilidad chrome antiguos activar browser google-chrome focus window

browser - versión - extensiones chromium



Detecta el foco del navegador/fuera de foco a través de la Extensión de Google Chrome (3)

Sí, esto se hace manipulando el desenfoque y el evento de enfoque. Como este ejemplo en jQuery:

$(window).blur(function(){ // do something when it loose focus like that: alert(''Good Bye.''); }); $(window).focus(function(){ // do something when it gains focus alert(''Welcome back.''); });

¿Hay alguna forma de averiguar si Google Chrome está enfocado o fuera de foco? Estoy creando una aplicación que necesita saber si el usuario está usando el navegador o no.

Al vincular la detección a través del script de contenido en una extensión de Google, he intentado utilizar desenfoque y enfoque, pero el problema es que al hacer clic en la barra de direcciones también se desencadena un evento de desenfoque. Lo mismo ocurre con la detección del movimiento del mouse, donde no se detectará mover el mouse fuera del área de visualización.

También intenté buscar en FocusChanged pero parece que solo detecta cambios en las ventanas de chromes, no en aplicaciones fuera de Chrome.

Alguien tiene otras ideas para esto? Además, ¿sería esto más fácil si crease un complemento para Firefox?

¡Gracias!


Quizás algunos no vean el comentario de @Giedrius. Este intervalo funciona:

window.setInterval(checkBrowserFocus, 1000); function checkBrowserFocus(){ chrome.windows.getCurrent(function(browser){ console.log(browser.focused) }) }


Puede usar la API chrome.windows para monitorear esto. onFocusChanged un detector para el evento onFocusChanged y si el evento devolvió -1 o chrome.windows.WINDOW_ID_NONE , sabrá que el navegador perdió el foco:

var inFocus = true; // global boolean to keep track of state chrome.windows.onFocusChanged.addListener(function(window) { if (window == chrome.windows.WINDOW_ID_NONE) { inFocus = false; } else { inFocus = true; } });

Chrome.Window Doc