确定屏幕上是否显示iframe

时间:2009-12-11 00:03:27

标签: javascript jquery iframe cross-domain

我有一个加载到外部网站的iframe,我无法输入任何代码。我希望能够在我的iframe(不同的域)中确定if iframe当前是否位于'viewport内浏览器(或者如果它从页面滚动)。

有没有办法做到这一点?因为我不相信我可以访问父页面的scrolltop和视口高度属性(由于跨域),除非我弄错了。

由于

2 个答案:

答案 0 :(得分:4)

不可以,因为您无法访问父域的文档,所以无法完成。这需要确定iframe元素的位置。您可以获得用户屏幕的大小,但这就是它。你的iframe可能是隐形的,你无法分辨。遗憾!

答案 1 :(得分:0)

我知道这是一个老问题,但Chrome的一些新API已经发布,可以在最新版Chrome(22 +)上回答您的问题

<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="display" id="imagens-home"> <li class="invisivel">0</li> <li class="invisivel">1</li> <li class="invisivel">2</li> <li class="invisivel">3</li> </ul>您可以在此处找到它:https://github.com/WICG/IntersectionObserver

正在开发一个polyfill(相同的repo),但只有当脚本在父网页上时才能在iframe afaik中工作。

对于其他浏览器,基于时间攻击,它们是一些黑暗的方法,本文很好地解释了它:http://www.contextis.com/documents/2/Browser_Timing_Attacks.pdf