首頁(yè) > 設計 > WEB開(kāi)發(fā) > 正文

如何實(shí)現iframe(嵌入式幀)的自適應高度

2020-10-03 17:39:57
字體:
來(lái)源:轉載
供稿:網(wǎng)友

好幾次看到有人提問(wèn)問(wèn)到如何實(shí)現 iframe 的自適應高度,能夠隨著(zhù)頁(yè)面的長(cháng)度自動(dòng)的適應以免除頁(yè)面和 iframe 同時(shí)出現滾動(dòng)條的現象,剛好我在工作中也碰到了類(lèi)似問(wèn)題,于是上網(wǎng)翻查,東抄抄西看看,弄出來(lái)這么一個(gè)函數,貼到頁(yè)面里面就能用了。不敢獨享,大家要是覺(jué)得有用,歡迎使用

源代碼如下

<script type="text/javascript">
 //** iframe自動(dòng)適應頁(yè)面 **//

 //輸入你希望根據頁(yè)面高度自動(dòng)調整高度的iframe的名稱(chēng)的列表
 //用逗號把每個(gè)iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個(gè)窗體,則不用逗號。

 //定義iframe的ID
 var iframeids=["test"]

 //如果用戶(hù)的瀏覽器不支持iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏
 var iframehide="yes"

 function dyniframesize()
 {
  var dyniframe=new Array()
  for (i=0; i<iframeids.length; i++)
  {
   if (document.getElementById)
   {
    //自動(dòng)調整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) //如果用戶(hù)的瀏覽器是NetScape
      dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;
     else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //如果用戶(hù)的瀏覽器是IE
      dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;
    }
   }
   //根據設定的參數來(lái)處理不支持iframe的瀏覽器的顯示問(wèn)題
   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>

使用的時(shí)候只要貼在<head></head>里面就可以了

----------------------------------------------------
ITlearner注:本人測試此代碼確實(shí)有效。
----------------------------------------------------

發(fā)表評論 共有條評論
用戶(hù)名: 密碼:
驗證碼: 匿名發(fā)表