在JavaScript中检测选项卡/窗口激活

时间:2011-08-06 12:19:34

标签: javascript events dom

当我在Firefox中激活标签

时,似乎Google+会检查通知更新

每次激活它都会显示“0”,但在此之后的几秒钟内会更改为一些新通知。

允许利用该事件的机制是什么?是否有特定的DOM事件?或者他们是否使用 onmouseover 处理程序之类的东西,只是将任何类型的活动视为标签激活的充分指标?

2 个答案:

答案 0 :(得分:5)

只是因为我没有可用于测试的所有相关浏览器。

如何在focus上使用window事件呢?每当用户点击某处时,都会调用此选项,但也会切换选项卡。要区分用户在页面上的操作和切换到页面的用户,您可以检查事件的explicitOriginalTarget是否指向window

window.onfocus=function(event){
    if(event.explicitOriginalTarget===window){
        console.log('switched from tab');
    }
}

答案 1 :(得分:1)

Page visibility个文档,它描述了document.onvisibilitychange事件处理程序。

用法

document.onvisibilitychange = function() { 
  console.log("Visibility of page has changed!");
};