浏览器可以检测浏览器何时在前台或后台模式下运行? [复制]
Posted
技术标签:
【中文标题】浏览器可以检测浏览器何时在前台或后台模式下运行? [复制]【英文标题】:Can browser detect when the browser is running on Foreground or Background mode? [duplicate] 【发布时间】:2021-09-20 01:44:58 【问题描述】:我想知道当我在我的电脑上使用多种类型的软件时,浏览器可以检测到其他软件正在运行或正在运行吗?
当我使用其他软件时,浏览器也可以处理浏览器在后台运行的情况。
或者当我使用alt+tab
切换软件时,浏览器是否可以检测到。
【问题讨论】:
浏览器当然可以检测到这一点。你为什么在乎?您是在询问浏览器中显示的网站内部的 javascript 是否可以检测到这一点? 浏览器可以检测到这一点。浏览器扩展也可以通过基本权限检测到这一点。此外,页面可以侦听某些 DOM 事件以检测它们何时不再处于焦点状态。这不是一份详尽的清单,但可能会给您一些提示。 从浏览器切换到其他软件时,浏览器可以检测到吗? @Bergi 我可以处理原始 JS 代码的扩展吗? @zr0gravity7 @MijanurRahman 同样,“来自浏览器”是什么意思?浏览器只是一个与其他应用程序一样的应用程序,是的,操作系统(窗口管理器)提供了一种检测方式。但是您没有实现浏览器,是吗?你想做什么,你的actual problem是什么? 【参考方案1】:您可以使用Page Visibility API:
var visibilityChange;
if (typeof document.hidden !== "undefined") // Opera 12.10 and Firefox 18 and later support
visibilityChange = "visibilitychange";
else if (typeof document.msHidden !== "undefined")
visibilityChange = "msvisibilitychange";
else if (typeof document.webkitHidden !== "undefined")
visibilityChange = "webkitvisibilitychange";
//^different browsers^
document.addEventListener(visibilityChange, function()
console.log("Visibility changed at "+new Date());
, false);
【讨论】:
当从浏览器切换到另一个软件时,这个答案可以检测到吗? 我在使用 ReactJs 时在 componentDidMount 中使用了这个函数。但它只能检测我何时使用浏览器将一个选项卡切换到另一个选项卡。 @MijanurRahman 这很奇怪......我会调查的。 好的,非常感谢。还有其他关于如何在 ReactJs 中使用可见性 API 的过程吗? 你得到任何答案了吗? @Spectric以上是关于浏览器可以检测浏览器何时在前台或后台模式下运行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章