我有一个加载到外部网站的iframe,我无法输入任何代码。我希望能够在我的iframe(不同的域)中确定if iframe当前是否位于'viewport内浏览器(或者如果它从页面滚动)。
有没有办法做到这一点?因为我不相信我可以访问父页面的scrolltop和视口高度属性(由于跨域),除非我弄错了。
由于
答案 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