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

之所以要这样做,是因为我运行的动画可能会占用大量CPU时间。当浏览器选项卡不可见时,没有理由继续进行动画处理。现在,我知道现代浏览器会降低背景标签的计时器分辨率,但是我实际上可以暂停动画,这样就不会浪费任何CPU时间。

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

评论

那么,您是在问如何分辨选项卡何时停止显示或不再具有焦点吗?

#1 楼

至少Google Chrome支持webkitvisibilitychange事件和document.webkitHidden属性。请参阅可见性API。但是,似乎仅当显示的选项卡更改时才会触发,而不是在整个窗口最小化时触发。 Internet Explorer似乎也有一个visibilitychange事件,但是文档中没有对此进行任何说明。

评论


Firefox现在还具有可见性API,developer.mozilla.org / en-US / docs / Web / Guide / User_experience / ...

– A_funs
13年5月23日在3:04

caniuse现在报告了可见性API的出色支持(caniuse.com/#feat=pagevisibility)

–达沃·赫格(Davor Hrg)
17-2-24在12:02



#2 楼

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

是否可以通过Javascript跟踪标签上的焦点?

#3 楼

现在他们正好具有所需的资源:
https://developer.mozilla.org/zh-CN/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API

评论


正如我在自己的答案中提到的那样:最小化/还原窗口时,这不会触发。但是,是的,总比没有强。

– Panzi
15年1月4日在18:18