iframe 多層嵌套 無限嵌套 高度自適應的解決方案
發(fā)布時間:2013-09-23 09:30:57 作者:佚名
我要評論

有A,B,C三個頁面,A頁面包含B頁面,B頁面包含C頁面.A頁面隨著B頁面自適應,C頁面隨著B頁面自適應,具體實現(xiàn)如下,感興趣的朋友可以參考下
有A,B,C三個頁面,A頁面包含B頁面,B頁面包含C頁面.A頁面隨著B頁面自適應,C頁面隨著B頁面自適應
A頁面
<body>
<iframe id="main" name="main" width="980" scrolling="no" frameborder="0" src="B頁面"
onload="this.height=main.document.body.scrollHeight;this.width=main.document.body.scrollWidth;if(this.height < 410){this.height=410;}">
</iframe>
</body>
B頁面
<body>
<!--左邊-->
<div style="flost:left;">
左邊菜單
</div>
<!--右邊-->
<div style="flost:right;">
<iframe id="testIframe" name="testIframe" frameborder=0 style="width: 680px;" scrolling="no" src="C頁面"></iframe>
</div>
</body>
C頁面
將下面這個JS函數(shù)寫到 最最底層的頁面中(即最孫子的那個頁面) 并在body的onload事件中調(diào)用該方法 【下面這個公式是萬能公式】
<script type="text/javascript">
//進行Iframe的自動撐開,讓所有父頁面的Iframe都自動適應包含頁高度
function autoHeight(){
var doc = document,
p = window;
while(p = p.parent){
var frames = p.frames,
frame,
i = 0;
while(frame = frames[i++]){
if(frame.document == doc){
frame.frameElement.style.height = doc.body.scrollHeight + 'px'; // 這里一定要注意 火狐必須要加'px‘ 否則火狐無效
doc = p.document;
break;
}
}
if(p == top){
break;
}
}
}
</script>
<body onload="autoHeight();">
<!--經(jīng)測試 這個最最最子的頁面的body中必須要有一個有高度的div才行 否則上面的自適應生效-->
<div style="height: 1px;">
</div>
<div style="padding-bottom: 10px;"> <!--這句話也是必不可少的-->
這里可以寫真正的內(nèi)容 并且給該div的padding-bottom設一個值
</div>
</body>
A頁面
復制代碼
代碼如下:<body>
<iframe id="main" name="main" width="980" scrolling="no" frameborder="0" src="B頁面"
onload="this.height=main.document.body.scrollHeight;this.width=main.document.body.scrollWidth;if(this.height < 410){this.height=410;}">
</iframe>
</body>
B頁面
復制代碼
代碼如下:<body>
<!--左邊-->
<div style="flost:left;">
左邊菜單
</div>
<!--右邊-->
<div style="flost:right;">
<iframe id="testIframe" name="testIframe" frameborder=0 style="width: 680px;" scrolling="no" src="C頁面"></iframe>
</div>
</body>
C頁面
將下面這個JS函數(shù)寫到 最最底層的頁面中(即最孫子的那個頁面) 并在body的onload事件中調(diào)用該方法 【下面這個公式是萬能公式】
復制代碼
代碼如下:<script type="text/javascript">
//進行Iframe的自動撐開,讓所有父頁面的Iframe都自動適應包含頁高度
function autoHeight(){
var doc = document,
p = window;
while(p = p.parent){
var frames = p.frames,
frame,
i = 0;
while(frame = frames[i++]){
if(frame.document == doc){
frame.frameElement.style.height = doc.body.scrollHeight + 'px'; // 這里一定要注意 火狐必須要加'px‘ 否則火狐無效
doc = p.document;
break;
}
}
if(p == top){
break;
}
}
}
</script>
<body onload="autoHeight();">
<!--經(jīng)測試 這個最最最子的頁面的body中必須要有一個有高度的div才行 否則上面的自適應生效-->
<div style="height: 1px;">
</div>
<div style="padding-bottom: 10px;"> <!--這句話也是必不可少的-->
這里可以寫真正的內(nèi)容 并且給該div的padding-bottom設一個值
</div>
</body>
相關文章
- 在不用iframe的情況下嵌套頁面,所以只好在div中嵌套,下面是具體的實現(xiàn),主要使用到了jquery,大家可以參考下2014-04-11
- 這篇文章主要介紹了關于解決iframe標簽嵌套問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一2020-03-04