确定浏览器选项卡是不是处于活动状态? - IE?
Posted
技术标签:
【中文标题】确定浏览器选项卡是不是处于活动状态? - IE?【英文标题】:Determine if browser tab is active? - IE?确定浏览器选项卡是否处于活动状态? - IE? 【发布时间】:2011-10-22 04:42:07 【问题描述】:我看过这个:
How to tell if browser/tab is active
和:
Is there a reliable way to determine if a browser tab or window is inactive or not in 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);
【问题讨论】:
【参考方案1】:在谷歌上搜索了很多...然后更多...然后更多...4 小时左右后我终于找到了隐藏在互联网深处的这个链接。 cmets 表明存在一个小错误,但它可以满足我的需要。
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;
【讨论】:
【参考方案2】:略有不同,但this was marked as the answer 暗示它有效,这是需要的延迟。不是很优雅,但如果它有效的话。
【讨论】:
也许我的问题不清楚。我不想打开另一个窗口。我只想在浏览器未查看选项卡时停止事件。然后在他们返回选项卡时恢复它们以上是关于确定浏览器选项卡是不是处于活动状态? - IE?的主要内容,如果未能解决你的问题,请参考以下文章
当用户/选项卡/浏览器处于非活动状态时 JavaScript 播放声音
Vuejs:当特定选项卡处于活动状态时是不是会发出事件(bootstrap-vue)