在我的网站上,我有一条重要的通知,该提示会提示本机alert(),以便在窗口尚未聚焦时将网站置于前台。问题在于,在某些浏览器上,如果用户在另一个桌面应用程序(Photoshop,Microsoft Word等)中,则不会将浏览器置于该应用程序之上。在这种情况下,警报几乎没有用,我想忽略它(因为它阻止了页面上的其他脚本)。
有没有办法告诉浏览器是设备上的活动应用程序?还是有另一种非阻塞方式将窗口置于前景?
谢谢!
说明:我已经知道如何检查浏览器中的窗口是否处于活动状态,但是我只是不知道如何检查浏览器应用程序本身是否处于活动状态。另外,我需要支持的浏览器是Chrome,Safari,Firefox和IE> = 9
您可以为此使用页面可见性API。
与IE 10+兼容。
小代码示例:
document.addEventListener("visibilitychange", function(e) {
console.log("visibility changed!", e);
if (document.visibilityState === 'visible') {
console.info("window is visible now!");
}
else {
console.info("something else, maybe you changed tab or minimized window!");
}
console.log("check the visibilityState property on document object for more info");
});
即使在打开选项卡的情况下用户最小化浏览器,这也将起作用,所以我想这符合您的需求:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句