Javascript-检测窗口是否处于非活动状态但仍可见

Gre*_*Guy 6 javascript visibility window

其他 许多答案也涵盖了正在运行的Javascript脚本如何判断其当前窗口是否处于活动状态。但是,这是一组相当严格的选择,并且之间没有区别(例如)

  1. 最小化的窗口
  2. 非活动标签
  3. 一个浮动窗口,部分被其他程序的浮动窗口所遮盖
  4. 当用户在另一台显示器的另一窗口中执行操作时,在一个显示器上全屏显示的标签。

尽管在后两种情况下该网页仍然对用户可见,但所有这些都被视为无效

尽管有证据表明,鉴于网络浏览器沙箱的工作原理从技术上讲这是不可能的,但我仍然希望能够发现上述两者之间的差异。例如,为(1)或(2)暂停动画,但为(3)或(4)保留动画。我想知道是否Javascript(加上框架,我想是WebAssembly)提供了一种机制来确定这一点-否则,是否有任何特定的浏览器具有从一页的javascript代码中进行确定的机制。

sna*_*che 8

你不能 不久前,我在一个项目中研究了此问题,活动与非活动是浏览器唯一的区别。

有关系统上其他窗口位置的信息不会传递给浏览器,尤其是考虑到可能对该路径进行反向工程以暴露安全风险时,尤其如此。将每个窗口保持黑屏以了解系统上其他程序正在执行的操作要安全得多。

您可以基于当前窗口中发生的事件来收集信息,例如检测打印对话框的打开,但不能从其他窗口中收集信息。

网页浏览权限API95%的覆盖率,并可能是最接近你能来-但你已经知道这一点,因为它是在你链接的每个问题最多的回答。你真不走运