隐藏/显示浏览器选项卡的事件

Event for browser tab hidden/shown?

本文关键字:事件 选项 浏览器 显示 隐藏      更新时间:2023-09-26

当浏览器选项卡失去/获得焦点时,是否有任何DOM事件?我知道在window上有blurfocus事件,但是当浏览器窗口作为一个整体失去焦点时,它们也会触发。然后浏览器可能仍然对用户可见。当然,这样的事件可能是特定于浏览器的,但没关系。

我想要这个的原因是因为我运行动画可能会消耗相当多的CPU时间。当浏览器选项卡不可见时,没有理由继续动画。现在我知道现代浏览器降低了背景标签的计时器分辨率,但是我可以暂停动画,这样就不会消耗任何CPU时间。

如果你想知道,这是我写的:http://panzi.github.com/Browser-Ponies/

至少Google Chrome支持webkitvisibilitychange事件和document.webkitHidden属性。参见可见性API。但它似乎只有在显示的选项卡改变时才会触发,而不是在整个窗口最小化时。似乎还有一个针对ie的visibilitychange事件,但是文档中并没有提到。

我相信你会发现最接近的是上面的答案:

是否有一种方法可以用Javascript跟踪标签的焦点?

现在他们正好有了需要的东西:https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API