2012-05-26 11 views
5

Estoy tratando de realizar un seguimiento del estado de una ventana de Firefox ("maximizada", "minimizada", "normal", "pantalla completa"; consulte here). Sin embargo, lo que sea que haya intentado, nunca veo el evento minimizado; los otros están bien. Por ejemplo, si añado a los oyentes a la ventana comoExtensión de Firefox: compruebe si la ventana está minimizada

window.addEventListener("activate", function(event) { dump("activate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 
window.addEventListener("deactivate", function(event) { dump("deactivate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 
window.addEventListener("resize", function(event) { dump("resize " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 

Nunca veo 2 como el window.windowState (2 = STATE_MINIMIZED). He intentado una solución usando screenX y screenY, pero eso no ayuda. Cuando minimizo la ventana, el evento desactiva - no el tamaño - se dispara con window.windowState siendo 3 (STATE_NORMAL) y los valores antiguos de screenX/screenY.

¿Hay alguna forma de detectar cuándo se está minimizando la ventana de Firefox? Estoy al final de mi ingenio. ¡Muchas gracias por cualquier ayuda!

+0

Encontré una solución usando un temporizador que periódicamente verifica el estado actual de la ventana y luego informa cualquier cambio. Está funcionando, pero todavía no entiendo cuál es el problema con la solución de escucha. – Christian

Respuesta

5

Debería estar escuchando el evento sizemodechange. Ese es el evento que se activa después de minimizar o maximizar la ventana. El evento resize no se activa para la minimización de ventanas porque técnicamente la ventana no se redimensiona, está oculta. Y el evento deactivate probablemente se dispara antes de la ventana se minimiza, cuando todavía tiene el estado normal (no compré sin embargo).

+0

¡Impresionante! Me perdí ese evento por completo. ¡Muchas gracias! – Christian

Cuestiones relacionadas