2012-05-26 4 views
5

Ich versuche, den Status eines Firefox-Fensters zu verfolgen ("maximiert", "minimiert", "normal", "Vollbild"; siehe here). Wie auch immer ich es versucht habe, ich werde nie das minimierte Ereignis sehen; den anderen geht es gut. Zum Beispiel, wenn ich die Zuhörer an das Fenster wieFirefox-Erweiterung: Überprüfen, ob Fenster minimiert ist

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

hinzufügen nie Ich sehe 2 als window.windowState (2 = STATE_MINIMIZED). Ich habe einen Workaround mit screenX und screeny versucht, aber das hilft nicht. Wenn ich das Fenster minimiere, wird das deaktiviere - nicht das resize - Ereignis ausgelöst, wobei window.windowState 3 (STATE_NORMAL) und die alten screenX/screenY Werte sind.

Gibt es eine Möglichkeit zu erkennen, wenn das Firefox-Fenster minimiert wird? Ich bin mit meinem Latein am Ende. Vielen Dank für jede Hilfe!

+0

Ich habe eine Problemumgehung mit einem Timer gefunden, der den aktuellen Fensterzustand regelmäßig überprüft und dann alle Änderungen meldet. Es funktioniert, aber ich verstehe immer noch nicht, was das Problem mit der Hörerlösung ist. – Christian

Antwort

5

Sie sollten das Ereignis sizemodechange hören. Das Ereignis wird ausgelöst, nachdem das Fenster minimiert oder maximiert wurde. Das Ereignis resize wird nicht für die Fensterminimierung ausgelöst, da das Fenster technisch nicht angepasst wird - es ist ausgeblendet. Und das deactivate Ereignis wahrscheinlich vor feuert das Fenster minimiert wird, wenn es immer noch den normalen Zustand hat (habe ich jedoch nicht überprüft).

+0

Super! Ich habe das Event komplett verpasst. Danke vielmals! – Christian