當(dāng)前位置:軟件學(xué)堂 > 資訊首頁 > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實(shí)現(xiàn)iframe自適應(yīng)高度

JS代碼實(shí)現(xiàn)iframe自適應(yīng)高度

2012/10/25 11:28:14作者:佚名來源:網(wǎng)絡(luò)

移動端

【實(shí)例名稱】

JS代碼實(shí)現(xiàn)iframe自適應(yīng)高度

【實(shí)例描述】

iframe框架可以動態(tài)加載網(wǎng)頁,并能嵌入到當(dāng)前頁面中,實(shí)現(xiàn)頁面嵌套的功能。為了更好地顯示子頁,本例學(xué)習(xí)如何自動調(diào)整iframe的高度。

【實(shí)例代碼】

 <html> <head> <title>iframe自適應(yīng)網(wǎng)頁-學(xué)無憂(wangbatian.cn)</title> <script type="text/javascript"> //自動調(diào)整iframe框架的方法 function iframeAuto() { try { if(window!=parent) { //定位需要調(diào)整的frame框架(在父級窗口中查找) var a = parent.document.getElementsByTagName("IFRAME"); for(var i=0; i<a.length; i++) { if(a[i].contentWindow==window) { var h1=0, h2=0; a[i].parentNode.style.height = a[i].offsetHeight +"px"; a[i].style.height = "10px";   //首先設(shè)置高度為10px,后面會修改 if(document.documentElement&&document.documentElement.scrollHeight) { h1=document.documentElement.scrollHeight; } if(document.body) h2=document.body.scrollHeight; var h=Math.max(h1, h2);      //取兩者中的最大值 if(document.all) {h += 4;} if(window.opera) {h += 1;} //調(diào)整框架的大小 a[i].style.height = a[i].parentNode.style.height = h +"px"; } } } } catch (ex){} } //事件綁定的方法,支持IE5以上版本 if(window.attachEvent) { window.attachEvent("onload", iframeAuto); } else if(window.addEventListener) { window.addEventListener('load', iframeAuto, false); } //--> </script> </head> <body> <table border="1" width="200" style="height: 400px; background-color: gray"> <tr> <td>iframe 自適應(yīng)其加載的網(wǎng)頁</td> </tr> </table> </body> </html>

【運(yùn)行效果】

運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)有如何獲取父級頁面中的iframe、如何實(shí)現(xiàn)iframe的自動調(diào)整。獲取父級頁面中的iflame,主要依靠“parent,document,getElementsBylhgName(”IFRAME”);”語句,其中的“parent”便是獲取的父級窗口。自動調(diào)整功能實(shí)現(xiàn)是將調(diào)整方法綁定到onload事件中,即窗體一加載便調(diào)整iflame的大小。

【源碼下載】

本實(shí)例JS代碼下載