[英]How to detect if an element is visible within an iframe that is on a cross domain parent
正如问题所指出的,我有一个跨网域父级的iframe。 如果该内容在页面加载时滚动到视图中或已经在视图中,则我需要触发一个事件。 正常检查距页面顶部/侧面的距离以及视口的高度/宽度似乎不起作用,因为它们在iframe本身中测量页面。
我无法在父页面上编辑/添加任何内容来启用此功能,所有内容都必须在iframe本身内。
这背后的原因是要记录内容是否曾经被用户查看过,或者是否已被加载到视线之外并保持在那里。
有一些公司提供这项广告服务,但就弄清楚它是如何完成的而言,这似乎是一门黑手艺。
任何帮助将不胜感激。
编辑:我提到的提供这项服务的公司的两个例子。
spider.io可能使用浏览器计时攻击来做到这一点。 他们的页面上有一个视频:
http://www.spider.io/viewability/
这是有关一些浏览器定时攻击如何工作的不错报告: http : //www.contextis.com/documents/2/Browser_Timing_Attacks.pdf
简单的答案是, 您不能 。
由于存在相同来源策略,因此无法使用ECMAscript访问跨域iframe
( DOM
或window object
)。
doubleverify和adxpose使用“离线”技术来确定广告是否可见,它不会在网页视图上显示。 如果他们通过Javascript做到了,那么您所要做的就是查看他们的像素之一,看看它是如何工作的。
您确定这些示例完全基于iframe吗? 也许他们需要向父窗口添加一些JavaScript。
如果您确实需要这样做,并且不需要100%的准确性,那么我将尝试一些基于时间的技术,并假设大多数浏览器将优化发生在视图之外的图形工作。
现实地说,我认为使用这种技术在合理的时间内无法获得预期的结果,也无法期待使用一个通用的强大的跨浏览器解决方案。 不过那会很有趣。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.