天天看點

自适應IFrame(IFRAME AutoStretch)

說明:

page_include = 被引用的頁面

page_parent = 首頁面

解決方法:

方法1

在$page_include加入JS代碼

自适應IFrame(IFRAME AutoStretch)

function  AutoStretch_1(frmId)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

    var frmObj = null;

自适應IFrame(IFRAME AutoStretch)

    //如果被引用且提供的父視窗的FRAMEID

自适應IFrame(IFRAME AutoStretch)

    if (parent != null && frmId != null)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{

自适應IFrame(IFRAME AutoStretch)

            frmObj = parent.document.getElementById(frmId);

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

            if (frmObj != null)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    ...{    

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        if (frmObj.contentDocument)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{//FOREFOX

自适應IFrame(IFRAME AutoStretch)

            frmObj.style.height=document.body.offsetHeight;

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

        else (frmObj.Document)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{//IE && Opera

自适應IFrame(IFRAME AutoStretch)

            frmObj.style.height = document.body.scrollHeight;

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

    }

自适應IFrame(IFRAME AutoStretch)

}

該方法有一個BUG,如果$page_include發生無重新整理的動态改變,導緻$page_include的顯示高度變短,opera将顯示不正常。

方法2

在$page_parent 端增加JS代碼

自适應IFrame(IFRAME AutoStretch)

Iframe自适應高度

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

< script language = " JavaScript " >  

自适應IFrame(IFRAME AutoStretch)

// ** iframe自動适應頁面 **//

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

// 輸入你希望根據頁面高度自動調整高度的iframe的名稱的清單

自适應IFrame(IFRAME AutoStretch)

// 用逗号把每個iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以隻有一個窗體,則不用逗号。

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

// 定義iframe的ID

自适應IFrame(IFRAME AutoStretch)

var  iframeids = [ " content " ]

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

// 如果使用者的浏覽器不支援iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏

自适應IFrame(IFRAME AutoStretch)

var  iframehide = " yes "

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

function  dyniframesize() 

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

var dyniframe=new Array()

自适應IFrame(IFRAME AutoStretch)

for (i=0; i<iframeids.length; i++)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

...{

自适應IFrame(IFRAME AutoStretch)

        if (document.getElementById)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

...{

自适應IFrame(IFRAME AutoStretch)

//自動調整iframe高度

自适應IFrame(IFRAME AutoStretch)

dyniframe[dyniframe.length] = document.getElementById(iframeids[i]);

自适應IFrame(IFRAME AutoStretch)

if (dyniframe[i] && !window.opera)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

...{

自适應IFrame(IFRAME AutoStretch)

dyniframe[i].style.display="block"

自适應IFrame(IFRAME AutoStretch)

if (dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight) //如果使用者的浏覽器是NetScape

自适應IFrame(IFRAME AutoStretch)

dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight; 

自适應IFrame(IFRAME AutoStretch)

else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //如果使用者的浏覽器是IE

自适應IFrame(IFRAME AutoStretch)

dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)

//根據設定的參數來處理不支援iframe的浏覽器的顯示問題

自适應IFrame(IFRAME AutoStretch)

if ((document.all || document.getElementById) && iframehide=="no")

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

...{

自适應IFrame(IFRAME AutoStretch)

var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])

自适應IFrame(IFRAME AutoStretch)

tempobj.style.display="block"

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

if  (window.addEventListener)

自适應IFrame(IFRAME AutoStretch)

window.addEventListener( " load " , dyniframesize,  false )

自适應IFrame(IFRAME AutoStretch)

else   if  (window.attachEvent)

自适應IFrame(IFRAME AutoStretch)

window.attachEvent( " onload " , dyniframesize)

自适應IFrame(IFRAME AutoStretch)

else

自适應IFrame(IFRAME AutoStretch)

window.onload = dyniframesize

自适應IFrame(IFRAME AutoStretch)

</ script >

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

方法3

支援FIREFOX,IE,OPERA

1. 在$page_include端的最後一行增加一個空白的圖檔

2. 在$page_include端增加JS代碼

自适應IFrame(IFRAME AutoStretch)

function  AutoStretch_2(frmId, lastPicId)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

    var frmObj = null;

自适應IFrame(IFRAME AutoStretch)

    if (parent != null && frmId != null)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{

自适應IFrame(IFRAME AutoStretch)

            frmObj = parent.document.getElementById(frmId);

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

    if (frmObj != null)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    ...{    

自适應IFrame(IFRAME AutoStretch)

        frmObj.style.height=parent.document.getElementById(lastPicId).offsetTop;        

自适應IFrame(IFRAME AutoStretch)

    }

自适應IFrame(IFRAME AutoStretch)

}

自适應IFrame(IFRAME AutoStretch)

getPostion = function(elem)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

    var offsetTrail = elem;

自适應IFrame(IFRAME AutoStretch)

    var offsetLeft = 0;

自适應IFrame(IFRAME AutoStretch)

    var offsetTop = 0;

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    while (offsetTrail) ...{

自适應IFrame(IFRAME AutoStretch)

        offsetLeft += offsetTrail.offsetLeft;

自适應IFrame(IFRAME AutoStretch)

        offsetTop += offsetTrail.offsetTop;

自适應IFrame(IFRAME AutoStretch)

        offsetTrail = offsetTrail.offsetParent;

自适應IFrame(IFRAME AutoStretch)

    }

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    var res = ...{"left":offsetLeft,"top":offsetTop};

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    return res;

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

} ;

自适應IFrame(IFRAME AutoStretch)

getHeight  =  function(elem)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

    if (elem.offsetHeight)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{

自适應IFrame(IFRAME AutoStretch)

        return elem.offsetHeight;

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

    else

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

        ...{

自适應IFrame(IFRAME AutoStretch)

        return elem.scrollHeight;

自适應IFrame(IFRAME AutoStretch)

        }

自适應IFrame(IFRAME AutoStretch)

} ;

自适應IFrame(IFRAME AutoStretch)

getWidth  =  function(elem)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

... {

自适應IFrame(IFRAME AutoStretch)

    if (elem.offsetWidth)

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    ...{

自适應IFrame(IFRAME AutoStretch)

        return elem.offsetWidth;

自适應IFrame(IFRAME AutoStretch)

    }

自适應IFrame(IFRAME AutoStretch)

    else

自适應IFrame(IFRAME AutoStretch)
自适應IFrame(IFRAME AutoStretch)

    ...{

自适應IFrame(IFRAME AutoStretch)

        return elem.scrollWidth;

自适應IFrame(IFRAME AutoStretch)

    }

自适應IFrame(IFRAME AutoStretch)

} ;

繼續閱讀