如何检测元素在跨域父级的iframe中是否可见



正如问题所述,我有一个位于跨域父级上的iframe。如果内容被滚动到视图中或在页面加载时已经在视图中,我需要触发一个事件。在iframe中测量页面时,对页面顶部/侧面的距离和视口高度/宽度的常规检查似乎不起作用。

我无法在父页面上编辑/添加任何内容来启用此功能,所有内容都必须在iframe本身中。

这背后的原因是记录内容是否有机会被用户查看,或者它是否被加载到视图之外并保存在那里。

有些公司为广告提供这项服务,但就了解其实际运作方式而言,这似乎是一门黑魔法。

如有任何帮助,我们将不胜感激。

编辑:我提到的提供这项服务的公司的两个例子。

  1. 查看(4)下的第一个勾号http://www.doubleverify.com/what-is-verification/
  2. 他们表示可以在右手边做的第一件事http://adxpose.com/home.page

spider.io可能使用浏览器定时攻击来实现这一点。他们的页面上有一段视频:

http://www.spider.io/viewability/

以下是一份关于一些浏览器定时攻击如何工作的精彩报告:http://www.contextis.com/documents/2/Browser_Timing_Attacks.pdf

简单的答案是,你不能

由于同源策略,您无法使用ECMAscript访问跨域iframeDOMwindow object)。

您确定这些示例完全基于iframe吗?也许他们需要向父窗口添加一些javascript。

如果你真的需要这个,并且不需要100%的准确性,我会尝试一些基于时间的技术,假设大多数浏览器都会优化视图外的图形工作。

现实地说,我认为在合理的时间内使用这些技术不可能取得好的结果,也不可能期待一个通用的健壮的跨浏览器解决方案。不过这会很有趣。

doubleverify和adxpose使用"离线"技术来确定广告是否可见,它不会出现在页面视图中。如果他们是通过Javascript实现的,那么你所要做的就是查看他们的一个像素,看看它是如何工作的。

相关内容

  • 没有找到相关文章

最新更新