天天看點

iframe根據子頁面自動調整大小(兩種方法)(第一種)(第二種)

iframe根據子頁面自動調整大小(兩種方法)

  • (第一種)
  • (第二種)

很多人估計會遇到這樣的情況,在IFrame嵌入某些頁面,總會出現滾動條,那麼有沒方法,可以讓IFrame随着嵌入頁面的内容大小自動調節大小而不出現滾動條呢?答案是肯定的,經過查找,發現了兩種方法,大家直接引用就好

(第一種)

在要嵌入的頁面添加js:

//iframe高度自适應

  function IFrameReSize(iframename) {

var pTar = document.getElementById(iframename);

if (pTar) { //ff

if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight) {

pTar.height = pTar.contentDocument.body.offsetHeight;

} //ie

else if (pTar.Document && pTar.Document.body.scrollHeight) {

pTar.height = pTar.Document.body.scrollHeight;

}

}

}

//iframe寬度自适應

function IFrameReSizeWidth(iframename) {

var pTar = document.getElementById(iframename);

if (pTar) { //ff

if (pTar.contentDocument && pTar.contentDocument.body.offsetWidth) {

pTar.width = pTar.contentDocument.body.offsetWidth;

} //ie

else if (pTar.Document && pTar.Document.body.scrollWidth) {

pTar.width = pTar.Document.body.scrollWidth;

}

}

}

在首頁面要嵌入的地方寫入:

  < iframe src=“Main.aspx” scrolling=“no” frameborder=“0” height=“100%” id=“mainFrame” width=“100%” οnlοad=‘IFrameReSize(“mainFrame”);IFrameReSizeWidth(“mainFrame”);’>< /iframe>

(第二種)

發現用IframeResizer腳本可以很好解決此問題,并且它是跨域名的,即使嵌入的是第三方頁面,不需繁雜處理,幾個步驟就可以使它自動調節寬度和高度。

1.首先下載下傳iframe-resizer最新版本,現在是v2.5.2, 位址:

https://github.com/davidjbradshaw/iframe-resizer/zipball/master

2.在放Iframe的頁面,引入iframeResizer.min.js腳本,并且進入如下初始化。

< script type=“text/javascript”>

iFrameResize({

log : true, // Enable console logging

enablePublicMethods : true, // Enable methods within iframe hosted page

});

< /script>

3.添加的Iframe,還要進行如下設定,寬度設定成百分比,scrolling設成no .

如:

< iframe src=“http://anotherdomain.com/frame.content.html” width=“100%” scrolling=“no”>< /iframe>

4.在被嵌入的頁面,添加如下腳本.

< script src=“http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js”></ script>

< script src=“js/iframeResizer.contentWindow.min.js” type=“text/javascript”>< /script>

5.為相容IE8+,還要添加如下。

< meta http-equiv=“X-UA-Compatible” content=“IE=edge”>