2012/9/27 20:14:49作者:佚名來源:網(wǎng)絡(luò)
在學(xué)習(xí)CSS+DIV的過程中,我們經(jīng)常會遇到各種問題,今天學(xué)無憂就教大家iframe的一點小技巧,iframe自適應(yīng)高度的多種方法。下面小編將詳細給大家說明iframe自適應(yīng)高度的多種方法的具體內(nèi)容:
iframe 元素會創(chuàng)建包含另外一個文檔的內(nèi)聯(lián)框架(即行內(nèi)框架)。
第一種方法:代碼簡單,兼容性還可以,大家可以先測試下。
function SetWinHeight(obj) { var win=obj; if (document.getElementById) { if (win && !window.opera) { if (win.contentDocument && win.contentDocument.body.offsetHeight) win.height = win.contentDocument.body.offsetHeight; else if(win.Document && win.Document.body.scrollHeight) win.height = win.Document.body.scrollHeight; } } }
最后,加入iframe,不能丟掉onload屬性,當(dāng)然了,id也必須也函數(shù)中的win匹配
<iframe width="778" align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)" frameborder="0" scrolling="no" src="1.htm"> </iframe>
經(jīng)典代碼 iFrame 自適應(yīng)高度,在IE6/IE7/IE8/Firefox/Opera/Chrome/Safari通過測試。
HTML代碼:
<iframe src="http://www.fufuok.com/" id="iframepage" name="iframepage" frameBorder=0 scrolling=no width="100%" onLoad="iFrameHeight()" > </iframe>
Javascript代碼:
<script type="text/javascript" language="javascript"> function iFrameHeight() { var ifm= document.getElementById("iframepage"); var subWeb = document.frames ? document.frames ["iframepage"].document : ifm.contentDocument; if(ifm != null && subWeb != null) { ifm.height = subWeb.body.scrollHeight; } } </script>
下面這個兼容性更好一些
<script language="javascript" type="text/javascript"> function dyniframesize(down) { var pTar = null; if (document.getElementById){ pTar = document.getElementById(down); } else{ eval('pTar = ' + down + ';'); } if (pTar && !window.opera){ //begin resizing iframe pTar.style.display="block" if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){ //ns6 syntax pTar.height = pTar.contentDocument.body.offsetHeight +20; pTar.width = pTar.contentDocument.body.scrollWidth+20; } else if (pTar.Document && pTar.Document.body.scrollHeight){ //ie5+ syntax pTar.height = pTar.Document.body.scrollHeight; pTar.width = pTar.Document.body.scrollWidth; } } } </script> <iframe src ="/default2.aspx" frameborder="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto" id="ifm" name="ifm" onload="javascript:dyniframesize('ifm');" width="100%"> </iframe>
另一種情況的iframe解決方案
重要提示:src=中你必須填寫的網(wǎng)頁地址,一定要和本頁面在同一個站點上,否則,會抱錯,說“拒絕訪問!”(實際上這是因為Js的跨域問題導(dǎo)致拒絕訪問的)
1、建立一個bottom.js的文件,然后輸入下面的代碼
parent.document.all("框架ID名").style.height=document.body.scrollHeight; parent.document.all("框架ID名").style.width=document.body.scrollWidth;
這里的 框架ID名 就是Iframe的ID,比如:
<IFRAME id="框架ID名" name="left" frameBorder=0 scrolling=no src="XXX.asp" width="100%"> </IFRAME>
2、給你網(wǎng)站里所有的被包含文件里面每個都加入
<script language = "JavaScript" src = "bottom.js"/></script>
3、在WINXP、IE6下面測試通過。很簡單吧!
實現(xiàn) iframe 的自適應(yīng)高度,能夠隨著頁面的長度自動的適應(yīng)以免除頁面和 iframe 同時出現(xiàn)滾動條的現(xiàn)象。
<script type="text/javascript"> //** iframe自動適應(yīng)頁面 **// //輸入你希望根據(jù)頁面高度自動調(diào)整高度的iframe的名稱的列表 //用逗號把每個iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個窗體,則不用逗號。 //定義iframe的ID var iframeids=["test"] //如果用戶的瀏覽器不支持iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏 var iframehide="yes" function dyniframesize() { var dyniframe=new Array() for (i=0; i<iframeids.length; i++) { if (document.getElementById) { //自動調(diào)整iframe高度 dyniframe[dyniframe.length] = document.getElementById(iframeids); if (dyniframe && !window.opera) { dyniframe.style.display="block" if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用戶的瀏覽器是NetScape dyniframe.height = dyniframe.contentDocument.body.offsetHeight; else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用戶的瀏覽器是IE dyniframe.height = dyniframe.Document.body.scrollHeight; } } //根據(jù)設(shè)定的參數(shù)來處理不支持iframe的瀏覽器的顯示問題 if ((document.all || document.getElementById) && iframehide=="no") { var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids) tempobj.style.display="block" } } } if (window.addEventListener) window.addEventListener("load", dyniframesize, false) else if (window.attachEvent) window.attachEvent("onload", dyniframesize) else window.onload=dyniframesize </script>
第三種方法批量iframe自適應(yīng):
<script language="javascript"> //輸入你希望根據(jù)頁面高度自動調(diào)整高度的iframe的名稱的列表 //用逗號把每個iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個窗體,則不用逗號。 //定義iframe的ID var iframeids=["test"]; //如果用戶的瀏覽器不支持iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏 var iframehide="yes"; function dyniframesize() { var dyniframe=new Array() for (i=0; i<iframeids.length; i++) { if (document.getElementById) { //自動調(diào)整iframe高度 dyniframe[dyniframe.length] = document.getElementById(iframeids[i]); if (dyniframe[i] && !window.opera) { dyniframe[i].style.display="block"; if (dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight) //如果用戶的瀏覽器是NetScape dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight; else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //如果用戶的瀏覽器是IE dyniframe[i].height = dyniframe[i].Document.body.scrollHeight; } } //根據(jù)設(shè)定的參數(shù)來處理不支持iframe的瀏覽器的顯示問題 if ((document.all || document.getElementById) && iframehide=="no") { var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i]); tempobj.style.display="block"; } } } if (window.addEventListener) window.addEventListener("load", dyniframesize, false); else if (window.attachEvent) window.attachEvent("onload", dyniframesize); else window.onload=dyniframesize; </script>
第四種方法,只針對知道的iframe的ID調(diào)用
function iframeAutoFit(iframeObj){ setTimeout(function(){if(!iframeObj) return;iframeObj .height=(iframeObj.Document?iframeObj.Document.body.scrollHeight:iframeObj .contentDocument.body.offsetHeight);},200) }
標(biāo)簽: iframe
相關(guān)文章
金山數(shù)據(jù)恢復(fù)大師官方版 v1.0.0.2
詳情南方測繪Cass10v10.1.6中文
詳情revit 2017
詳情KeyShot Pro 9中文(附安裝教程) v9.0.286
詳情網(wǎng)易新聞客戶端v105.3
詳情AIMP4v5.11.2421中文綠色美化版
詳情onekey一鍵還原v18.0.18.1008
詳情浩辰CAD2020綠色v20.0
詳情好圖網(wǎng)圖標(biāo)轉(zhuǎn)換工具v4.9.7
詳情Adobe indesign cs6
詳情aardiov35.0.0中文最新版
詳情Adobe Creative Cloud 2024簡體中文v5.3.0.48
詳情暴風(fēng)影音16 v9.04.1029去廣告精簡版
詳情ASP.NET Maker 2019(ASP.NET代碼生成工具)v12.0.4.0
詳情暴風(fēng)影音v5.92.0824.1111
詳情迅雷5穩(wěn)定版v5.8.14.706
詳情使命召喚17官方中文版 v1.0
詳情死亡之雨新的僵尸病毒中文v1.0綠色免安裝版
詳情輻射4v1.7.15.0整合版
詳情克莉2v1.0中文版
詳情冬日計劃v1.2中文版
詳情刺客信條英靈殿v1.0吾愛
詳情刺客信條英靈殿終極v1.0免安裝
詳情動物森友會v1.10.0最新
詳情哈迪斯殺出地獄v1.37中文
詳情嗜血印中文豪華版v1.0豪華版 附游戲攻略秘籍
詳情城市戰(zhàn)斗v1.0中文
詳情尼爾人工生命v1.0steam免費
詳情尼爾人工生命升級版v1.0PC
詳情層層恐懼2中文v1.0綠色免安裝版
詳情往日不再v1.0 steam
詳情往日不再v1.0pc
詳情小生活游戲內(nèi)置MOD版v2.0(57)安卓版
詳情使命召喚手游測試服最新版v1.9.41安卓版
詳情三國謀定天下官服v1.2.1安卓版
詳情熱血新手村高爆版v1.0.0安卓版
詳情我養(yǎng)你啊手機版v1.0.0安卓版
詳情看懂了就很恐怖的故事(細思極恐)中文版v1.0安卓版
詳情背包英雄中文手機版v1.1.1安卓版
詳情glow官方版v2.0.9安卓版
詳情三國大時代4霸王立志官方正版v1.9安卓版
詳情飛盧小說閱讀器手機版v7.0.7安卓版
詳情牛?;浾Z詞典軟件v20.4.4安卓版
詳情PrettyUp視頻美化瘦身軟件v2.3.0
詳情化學(xué)方程式app中文版v1.1.0.20安卓版
詳情地下城堡3魂之詩2024安卓最新版v1.2.3安卓版
詳情南方都市報v6.10.0安卓版
詳情阿修羅之眼正版v1.0.10安卓版
詳情