Javascript - 在 Firefox 中使用焦点不会调用最大化和选项卡切换事件

发布于 2024-10-24 10:31:21 字数 598 浏览 8 评论 0原文

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

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

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 的原因...但是它并不总是为窗口触发此事件,所以我必须听两个焦点...你觉得怎么样?

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

非常感谢, 尼利

I am facing a weird behavior and I need some help..

I am trying to catch every tab switching event and every maximize event (meaning: whenever my window is shown), using the following code:

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

However, It doesn't catch maximize event! How can I tell whenever a user maximizes my window after a minimize?

Also, it seems redundant to me to have both window.addEventListener("focus") and window.document.addEventListener("focus") but I found out that when switching between tabs, the selected document it focuses on might not be the content I'm interested in, so that's why I'm using window.focus.... However it doesn't always fire this event for window, so I must listen to both focuses... What do you think?

Can you please help me understand where's my problem? I need to create an event that fires on every tab switching \ maximize - and for every document inside my window so that it'll process my content?

Thank a lot,
Nili

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

莫相离 2024-10-31 10:31:21

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

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

更新:
对于 IE8- 破解:
如果您确定用户可以接受将窗口尺寸最大化,则可以使用 window.resizeTo(screen.availWidth, screen.availHeight) 并记录 document.documentElement.clientWidth strong> 和 document.documentElement.clientHeight 进行比较,以供稍后最大化。

You can use window.onresize event, if window.outerHeight === screen.availHeight && window,outerWidth === screen.availWidth, it's maximized.

But outerHeight/Width DOES NOT sopport IE8-, see http://www.javascriptkit.com/domref/windowproperties.shtml

Updated:
For IE8- hacks:
If you can sure the user can accept to maximize window size to maximum, you can use window.resizeTo(screen.availWidth, screen.availHeight) and record the document.documentElement.clientWidth and document.documentElement.clientHeight to compare if it's maximized for later.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文