1

我正面临一种奇怪的行为,我需要一些帮助..

我正在尝试使用以下代码捕获每个选项卡切换事件和每个最大化事件(意思是:每当显示我的窗口时):

window.addEventListener("focus", function (e) { this.foo(e); }, false);
window.document.addEventListener("focus", function (e) { this.foo(e); }, false);

但是,它没有捕获最大化事件!我如何知道用户在最小化后何时最大化我的窗口?

此外,对我来说,同时拥有 window.addEventListener("focus") 和 window.document.addEventListener("focus") 似乎是多余的,但我发现在选项卡之间切换时,它关注的选定文档可能不是内容我很感兴趣,所以这就是为什么我使用 window.focus.... 但是它并不总是为 window 触发这个事件,所以我必须听两个焦点...你怎么看?

你能帮我理解我的问题在哪里吗?我需要创建一个在每个选项卡切换\最大化时触发的事件 - 以及我窗口内的每个文档,以便它处理我的内容?

非常感谢,妮莉

4

1 回答 1

0

您可以使用window.onresize事件,如果window.outerHeight === screen.availHeight && window,outerWidth === screen.availWidth,它被最大化。

但 outerHeight/Width 不支持 IE8-,请参阅http://www.javascriptkit.com/domref/windowproperties.shtml

更新:对于 IE8-hacks:如果您确定用户可以接受将窗口大小最大化到最大,您可以使用window.resizeTo(screen.availWidth, screen.availHeight)并记录document.documentElement.clientWidthdocument.documentElement。 clientHeight比较它是否被最大化以供以后使用。

于 2011-03-21T15:45:27.130 回答