
假如在 test.com/a.html 页面使用 iframe 引入的 test2.com/b.html 页面 如何实现 test2.com/b.html 中使用 js 动态控制 test.com/a.html 中 iframe 的高度?
1 yunying 2016 年 7 月 21 日 请搜索 iframe 跨域通信相关的内容 |
2 tmkook PRO window.top.document.getElementsByTagName('iframe')[0].height = document.height |
3 cxe2v 2016 年 7 月 21 日 1 楼扯淡, 2 楼正解 |
4 zonghua 2016 年 7 月 21 日 iframe 默认四周有留空,可以设置边距为赋值,这样就能紧贴 |
5 pubby 2016 年 7 月 21 日 @tmkook 跨域了还能这样搞? test2.com/b.html 中再嵌入一个隐藏 iframe2.src=test.com/x.html b.html 中计算自己高度,动态改变 iframe2.src=test.com/x.html?myHeight=XXXX (也可以用 hash,比如 x.html#myHeight=XXXX ) x.html 中获取 myHeight 的改变 , window.parent.parent 就是 test.com/a.html 的 window 了,因为 x.html 和 a.html 同一个域,可以操作 dom 。 |
6 tmkook PRO @pubby 跨域有很多解决办法 1 、通过后端获取 test2 的内容给 test1 域下输出 2 、 test2 下动态创建一个 test1 的 iframe ,再用 test1 的 iframe 设置父节点的高(同你的方法一样) 3 、在 test1 下用 ajax 获取 test2 的内容(需设置允许跨域的头) |
7 YuJianrong 2016 年 7 月 21 日 不考虑低版本浏览器兼容性的话可以试用 postMesage |