隐藏/显示浏览器标签的事件?

时间:2011-09-20 02:07:27

标签: javascript tabs focus dom-events

浏览器标签失去/获得焦点时是否有任何DOM事件?我知道blur上有focuswindow个事件,但当浏览器窗口整体失去焦点时,它们也会触发。然后,浏览器可能仍然对用户可见。当然这样的事件将是浏览器特定的,但没关系。

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

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

3 个答案:

答案 0 :(得分:5)

至少谷歌浏览器支持webkitvisibilitychange事件和document.webkitHidden属性。请参阅visibility API。但似乎只有在显示的标签更改时才会触发,而不是在整个窗口最小化时触发。 Internet Explorer似乎也有visibilitychange事件,但documentation没有说明任何内容。

答案 1 :(得分:2)

我相信你会发现最接近的是这里的最佳答案:

Is there a way track the focus on tab with Javascript?

答案 2 :(得分:1)