2012-05-26 8 views
5

Sto cercando di tenere traccia dello stato di una finestra di Firefox ("ingrandito", "ridotto a icona", "normale", "schermo intero"; vedere here). Comunque, qualunque cosa abbia provato, non riesco mai a vedere l'evento minimizzato; gli altri stanno bene. Ad esempio, se aggiungo ascoltatori alla finestra, comeEstensione per Firefox: controlla se la finestra è ridotta a icona

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); 

vedo mai 2 come window.windowState (2 = STATE_MINIMIZED). Ho provato una soluzione alternativa utilizzando screenX e screenY, ma questo non aiuta. Quando minimizzo la finestra, l'evento di disattivazione - non di ridimensionamento - viene attivato con window.windowState che indica 3 (STATE_NORMAL) e i vecchi valori screenX/screenY.

C'è un modo per rilevare quando la finestra di Firefox viene ridotta a icona? Sono alla fine della mia intelligenza. Grazie mille per qualsiasi aiuto!

+0

Ho trovato una soluzione alternativa utilizzando un timer che controlla periodicamente lo stato corrente della finestra, quindi segnala eventuali modifiche. Funziona, ma continuo a non capire qual è il problema con la soluzione di ascolto. – Christian

risposta

5

Dovresti ascoltare l'evento sizemodechange. Questo è l'evento che si attiva dopo che la finestra è stata minimizzata o ingrandita. L'evento resize non viene attivato per la riduzione delle finestre perché tecnicamente la finestra non viene ridimensionata, ma è nascosta. E l'evento deactivate spara probabilmente prima dello la finestra viene ridotta a icona, quando ha ancora lo stato normale (non ho verificato tuttavia).

+0

Fantastico! Ho perso completamente quell'evento. Molte grazie! – Christian

Problemi correlati