在浏览器窗口中检测另一个应用程序(包括百分比重叠

时间:2014-01-06 10:23:23

标签: javascript flash flex browser activex

有没有办法检测应用程序(比如聊天客户端或msword)是否在我的浏览器窗口之上。

一种方法是检查焦点。但这并不是绝对说另一个程序在浏览器的“可查看”区域之上就完整的屏幕而言。

如果整个浏览器是可见的,但重点是单词文档/聊天客户端。

编辑:

从执行此http://www.spider.io/vStp83jg6/

的公司找到示例演示

2 个答案:

答案 0 :(得分:5)

我认为这不需要flash或任何插件,为了有效,这必须基于CSS和Javascript。

浏览器的安全沙箱阻止从操作系统访问此信息。

他们在浏览器中唯一能做的就是检测浏览器窗口被另一个窗口隐藏这一事实的某种副作用

可以检测到的副作用之一是绘画元素的浏览器渲染优化是否已经启动。

根据spider.io viewability视频,他们已经根据浏览器渲染优化检测检测到添加是否可见。

如果添加不可见,那么对于页面的该部分,渲染优化将启动并且页面的该部分的呈现将变慢,以便节省内存和CPU资源,并加速渲染页面的可见部分。

可以使用相同的技术来检测浏览器窗口是否被隐藏。

如果他们检测到几个区域(如可见视口的4个角落和页面中心)正在进行渲染优化,则可以安全地假设应用程序被其他外部应用程序隐藏,或者计算重叠百分比的估计值

他们没有详细说明他们是如何做到的,但是因为它是基于速度测量的,所以可能是这样的:

可用于检测另一个窗口是否隐藏浏览器的一种方法:

创建一个小的不可见的基于CSS3或Javascript的动画,动画在页面的不同部分动画不可见的元素。动画不应影响页面的性能,可以随意启动/停止。

在页面启动时测量动画的时间,并取平均值。如果页面被另一个OS窗口隐藏,那么渲染优化就会启动,动画运行的时间会更长。

在此处检查browser API以检测CSS3动画的开始和停止,这可能是实现此目的的一种方法。

答案 1 :(得分:2)

  1. Alexa等公司收集的商业网站流量数据。由安装的软件执行,例如工具栏。并跟踪用户活动,程序,窗口打开....一切......(征得同意)
  2. 有争议的答案,它未经同意(间谍软件?)
  3. 执行上述操作

    注意上述2方法的关键点。是数据来自安装软件的计算机样本。并非每个站点的访问者(除非访问该站点插入间谍软件)

    安装自定义软件。他们可以解决所有与浏览器相关的限制/安全问题。

    或许可以通过提供有关声称这样做的公司的信息来找到更多信息?