iframe根据内容变化调整高度

前提条件:子页面是第三方网站,相当于不可控制

需要实现:父页面iframe取消滚动条,并展示子页面的所用内容,且子页面内容发生变化时,父页面自适应其高度

实现过程:
我一开始试过获取子页面的window高度,结果由于文档的跨域问题,无法获取。
后来尝试使用postMessage,但第三方并没有获取接受数据和返回数据的接口,无法获取

所以想请教一下各位大佬如何处理这种情况

阅读 3.6k
2 个回答

onload="this.height=rightFrame.document.body.scrollHeight;"不知道能不能解决你的问题

首先 你要能在iframe里面访问到包裹iframe的盒子 。你需要把盒子id传到iframe里面去

<div id="a">    
    <iframe height="0" src="./iframe.html?boxid=a">
</div>

然后找到盒子下面的iframe

//iframe内部逻辑
var body=document.getElementsByTagName('body')[0] ,
    iframeParent = window.parent.document.getElementById(box_id), //盒子的dom
    iframe = iframeParent.getElementsByTagName('iframe')[0];

最后给iframe高度赋值就可以了。

  //iframe内部逻辑
  iframe.height = body.offsetHeight

应该是这样,嗯,大概吧,嗯,也许吧。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题