检测选项卡是否处于活动状态? (与焦点不同)

时间:2011-10-20 18:32:22

标签: javascript javascript-events

我的javascript使用计时器来刷新页面的CSS。我喜欢在Safari处于后台时运行它并且我在我的代码编辑器中进行更改,但是当它不在活动的浏览器选项卡中时我不希望它运行。

当另一个标签处于焦点时,

window.blurwindow.focus会被触发,但当标签处于活动状态且Safari位于后台时,它们也会被触发,因此它们在这里没有帮助我。

如何检测我的javascript运行的标签当前是否处于活动状态?

3 个答案:

答案 0 :(得分:1)

W3C有一份工作草案,可以跟踪这一情况:the page visibility API。 Chrome浏览器是唯一支持它的浏览器,目前只有an experimental API。您可以使用Web Inspector控制台中的这个小功能进行试用:

function tattle() {
  console.log(document.webkitVisibilityState);
}

document.addEventListener("webkitvisibilitychange", tattle, false);

在玩完之后,我认为这正是我所需要的。基本上,如果文档位于其窗口的活动选项卡中,则document.webkitHidden仅为false,无论其他窗口或应用程序是否处于活动状态。

答案 1 :(得分:0)

尝试像onmouseover ..

答案 2 :(得分:0)