Firefox扩展:检查窗口是否最小化

时间:2012-05-26 14:27:18

标签: javascript firefox javascript-events firefox-addon

我正在尝试跟踪Firefox窗口的状态(“最大化”,“最小化”,“正常”,“全屏”;请参阅here)。然而,无论我尝试过什么,我都不会看到最小化的事件;其他人做得很好。例如,如果我将监听器添加到窗口,例如

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

我从未将2视为window.windowState(2 = STATE_MINIMIZED)。我尝试过使用screenX和screenY的解决方法,但这没有帮助。当我最小化窗口时,取消激活 - 而不是调整大小 - 事件会触发window.windowState为3(STATE_NORMAL)和旧的screenX / screenY值。

有没有办法检测Firefox窗口何时被最小化?我的智慧结束了。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您应该收听sizemodechange事件。这是在窗口最小化或最大化之后触发的事件。 resize事件不会触发窗口最小化,因为从技术上讲,窗口没有调整大小 - 它是隐藏的。并且deactivate事件可能会在窗口最小化之前触发,当它仍处于正常状态时(我没有检查)。