4

我正在尝试跟踪 Firefox 窗口的状态(“最大化”、“最小化”、“正常”、“全屏”;请参见此处)。但是,无论我尝试过什么,我都看不到最小化的事件;其他人做得很好。例如,如果我向窗口添加侦听器,例如

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 窗口何时被最小化?我无计可施。

4

1 回答 1

4

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

于 2012-05-26T21:43:59.830 回答