这是我看的一篇博客链接描述
我的想法是:
在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也是考虑这两个浏览器。
参考链接:http://www.alloyteam.com/2013/11/the-second-version-universal-solution-iframe-cross-domain-communication/