鍍金池/ 問(wèn)答/HTML5  Python  HTML/ iframe根據(jù)內(nèi)容變化調(diào)整高度

iframe根據(jù)內(nèi)容變化調(diào)整高度

前提條件:子頁(yè)面是第三方網(wǎng)站,相當(dāng)于不可控制

需要實(shí)現(xiàn):父頁(yè)面iframe取消滾動(dòng)條,并展示子頁(yè)面的所用內(nèi)容,且子頁(yè)面內(nèi)容發(fā)生變化時(shí),父頁(yè)面自適應(yīng)其高度

實(shí)現(xiàn)過(guò)程:
我一開(kāi)始試過(guò)獲取子頁(yè)面的window高度,結(jié)果由于文檔的跨域問(wèn)題,無(wú)法獲取。
后來(lái)嘗試使用postMessage,但第三方并沒(méi)有獲取接受數(shù)據(jù)和返回?cái)?shù)據(jù)的接口,無(wú)法獲取

所以想請(qǐng)教一下各位大佬如何處理這種情況

回答
編輯回答
純妹

onload="this.height=rightFrame.document.body.scrollHeight;"不知道能不能解決你的問(wèn)題

2017年10月1日 02:18
編輯回答
尐潴豬

首先 你要能在iframe里面訪問(wèn)到包裹iframe的盒子 。你需要把盒子id傳到iframe里面去

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

然后找到盒子下面的iframe

//iframe內(nèi)部邏輯
var body=document.getElementsByTagName('body')[0] ,
    iframeParent = window.parent.document.getElementById(box_id), //盒子的dom
    iframe = iframeParent.getElementsByTagName('iframe')[0];

最后給iframe高度賦值就可以了。

  //iframe內(nèi)部邏輯
  iframe.height = body.offsetHeight

應(yīng)該是這樣,嗯,大概吧,嗯,也許吧。。。

2018年4月7日 19:08