确定浏览器标签是否处于活动状态? - IE?

Jas*_*onS 5 javascript tabs focus

我看过这个:

如何判断浏览器/选项卡是否处于活动状态

和:

是否有可靠的方法来确定浏览器选项卡或窗口是否处于非活动状态?

第一个链接为现代浏览器提供了解决方案,但在IE7/8中不起作用.这两个问题都相当陈旧.是否有解决方案来确定访问者是否正在查看他们的打开标签?

我尝试过的几乎所有内容都适用于Chrome.但IE7刚刚失败.

我只想设置一个全局变量来说明页面是否正在被查看.

var isActive = true;

$(window).focus(function() {
    isActive = true;
});

$(window).blur(function() {
    isActive = false;
});

// test
setInterval(function () {
  console.log(window.isActive ? 'active' : 'inactive'); 
}, 1000);
Run Code Online (Sandbox Code Playgroud)

Jas*_*onS 7

经过大量的谷歌搜索...然后更多...然后更多......大约4个小时后我终于发现这个链接隐藏在互联网的深处.评论表明存在一个小错误,但它对我需要的东西很好.

http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

var isActive = true;
function onBlur() {
    isActive = false;
};
function onFocus(){
    isActive = true;
};

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}
Run Code Online (Sandbox Code Playgroud)