首页 > iframe跨域的情况下如何获取父页面的滚动距离?

iframe跨域的情况下如何获取父页面的滚动距离?

这是我看的一篇博客链接描述

我的想法是:
在B页面插入一个和A同域的iframe C, 在C里面通过 parent.parent能够获获得 A页面的滚动距离,然后在C里面改变自身的一个属性比如 src 值,B页面在拿到C的src值,可是想的挺完美,现实是C无法更新自身的src值。

求大神给我支招。

应用场景就是,
我需要在内嵌的Iframe里弹出一个模态框,这个模态框,要始终在浏览器视窗内,让用户能够看见,并且这个弹窗只能在iframe里弹出,父window不是我能操作的。
这个iframe高度会大大超出屏幕的高度,2000px,而浏览器高是1000,我弹窗的时候就需要动态的算这个弹窗的top值。还有这个iframe是跨域的。
如果是同域的很好解决,但是是不同域,而且不可以设置domain。


相信这个插件MessengerJs能解决你的问题,当然,前提是你对A页面和B页面都有掌控能力,可以同时加载MessengerJs。

原理是这样:

针对IE8+和chrome等现代浏览器,使用postMessage来实现iframe和页面之间的消息通信

对于不支持postMessage的浏览器,比如IE6,7,基本上MessageJs也是考虑这两个浏览器。

IE6/7下,使用的是一个被认为是bug或安全漏洞的特性,即navigator对象在父窗口和iframe之间是共享的。

参考链接:http://www.alloyteam.com/2013/11/the-second-version-universal-solution-iframe-cross-domain-communication/

【热门文章】
【热门文章】