最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IFrame跨域高度自適應實現(xiàn)代碼

 更新時間:2012年08月16日 12:02:20   作者:  
最近在做項目中,遇到一個問題,就是iframe高度的自適應問題,以下是解決辦法
復制代碼 代碼如下:

var iframeids = ['memberIndexIframe','inquiryCenterIframe','everychinaBbsIframe'];
var iframehide = "yes";
function dynIframeSize(){
var dyniframe = [];
for(var i=0;i<iframeids.length;i++){
if(!document.getElementById) return false;
dyniframe[i] = document.getElementById(iframeids[i]);
if(dyniframe[i] && !window.opera){
dyniframe[i].style.display = "block";
if(dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight){
dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;
}else if(dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight){
dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;
}
}
if((document.all || document.getElement) && iframeids == "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;
}

對于上面的代碼直接保存一個文件iframe.js,然后引用即可

注意:這段代碼對于跨域的iframe引用不太適用,需要特別定義其iframe高度

下面這個代碼是跨域的iframe高度

項目網站中需要嵌入合作網站的頁面,這就需要頁面的自適應高度變化,并且是跨域的。在網上看了許多資料,加上自己的實踐,終于實現(xiàn)了跨域的IFrame自適應高度。如下:

首先,我的頁面a.html需要引入對方的b.html,在這里運用iframe方式實現(xiàn)頁面的套用
a.html頁面的主要代碼如下:
復制代碼 代碼如下:

<BODY>
<iframe width="100%" id="a_iframe" name="a_iframe" src="http://對方域名/b.html"
frameborder="no" border="0px" scrolling="no" allowtransparency="yes" ></iframe>
</BODY>

a.html頁面只是用來引入對方頁面的一個簡單頁面 這就不多做介紹。
然后,最好在a.html同一級目錄下,創(chuàng)建一個agent.html頁面,該頁面用來得到對方通過js傳遞過來的參數(shù),
根據高度參數(shù)來調整a.html中的a_iframe的高度,主要代碼如下:
Js代碼
復制代碼 代碼如下:

<script type="text/javascript">
//得到a.html中的a_iframe
var a_iframe = parent.parent.document.getElementById("a_iframe");
//<SPAN>location.hash用來獲取頁面的標簽值</SPAN>
,這個值通過b.html中的js函數(shù)改變。包括height屬性
var hash_url = window.location.hash;
//得到b.html傳遞過來的height屬性
var hash_height = hash_url.split("#")[1]+"px";
//調整a_iframe的height,達到自適應
a_iframe.height = hash_height;
</script>

最后,對方的頁面(b.html),讓對方在b.html中加入以下javascript代碼
復制代碼 代碼如下:

<iframe id="b_iframe" width="100%" src="http://我的域名/../agent.html" style="display:none">
</iframe>
<script type="text/javascript">
var b_height = Math.max(document.body.scrollHeight,document.body.clientHeight);
var b_iframe = document.getElementById("b_iframe");
b_iframe.src = b_frame.src+"#"+b_height;
</script>

通過 Math.max(clientHeight,scrollHeight)比較網頁可見區(qū)域高,網頁正文全文高這兩者得到其中的較大的值后,
iframe將這個height通過src傳遞到我的agent.html,這樣a.html中的Iframe就能自適應對方的b.html高度了。這里在IE下測試的沒問題,其它瀏覽器沒測試。
在實現(xiàn)這個功能的過程中,在網上發(fā)現(xiàn)了一段很有用的獲取頁面高度的js,在這里也記錄、引用下:
復制代碼 代碼如下:

<script>
var strInfo=" " ;
strInfo+=" \r\n網頁可見區(qū)域寬:" +document.body.clientWidth;
strInfo+=" \r\n網頁可見區(qū)域高:" +document.body.clientHeight;
strInfo+=" \r\n網頁可見區(qū)域寬:" +document.body.offsetWidth+" (包括邊線的寬)" ;
strInfo+=" \r\n網頁可見區(qū)域高:" +document.body.offsetHeight+" (包括邊線的寬)" ;
strInfo+=" \r\n網頁正文全文寬:" +document.body.scrollWidth;
strInfo+=" \r\n網頁正文全文高:" +document.body.scrollHeight;
strInfo+=" \r\n網頁被卷去的高:" +document.body.scrollTop;
strInfo+=" \r\n網頁被卷去的左:" +document.body.scrollLeft;
strInfo+=" \r\n網頁正文部分上:" +window.screenTop;
strInfo+=" \r\n網頁正文部分左:" +window.screenLeft;
strInfo+=" \r\n屏幕分辨率的高:" +window.screen.height;
strInfo+=" \r\n屏幕分辨率的寬:" +window.screen.width;
strInfo+=" \r\n屏幕可用工作區(qū)高度:" +window.screen.availHeight;
strInfo+=" \r\n屏幕可用工作區(qū)寬度:" +window.screen.availWidth;
window.confirm(strInfo);
</script>

相關文章

最新評論

柳州市| 平邑县| 米泉市| 玉林市| 永平县| 望江县| 万州区| 小金县| 玛多县| 闵行区| 荆门市| 玛曲县| 横山县| 平遥县| 苍山县| 信丰县| 霍山县| 海盐县| 化德县| 新平| 西宁市| 乌恰县| 定西市| 濉溪县| 珲春市| 黎城县| 兰州市| 广水市| 赤水市| 长顺县| 开化县| 大埔区| 庆城县| 上栗县| 丰镇市| 泸州市| 苍梧县| 霍州市| 秦安县| 平舆县| 上杭县|