iframe自适应高度,Iframe显示不完整

92 篇文章 0 订阅
41 篇文章 0 订阅

iframe自适应高度,Iframe显示不完整,兼容IE、Chrome、火狐

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2014年8月13日 16:57:03 星期三

 

 

iframe在浏览器中不怎么好,高度问题或者说显示问题经常出现,而且在不同的浏览器表现方式各不相同,特别让人纠结。但可以通过js改变Iframe的高度。

 

js代码:

function setIframeHeight(iframeId){
	var cwin = document.getElementById(iframeId); 
	if (document.getElementById){
		if (cwin && !window.opera){
			if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight){
				cwin.height = cwin.contentDocument.body.offsetHeight + 20; //FF NS 
			}
			else if(cwin.Document && cwin.Document.body.scrollHeight){
				cwin.height = cwin.Document.body.scrollHeight + 10;//IE 
			}
		}else{
			if(cwin.contentWindow.document && cwin.contentWindow.document.body.scrollHeight) 
			cwin.height = cwin.contentWindow.document.body.scrollHeight;//Opera 
		}
	} 
};

 

注意的是:

如果Iframe一开始就显示的话,可以在Iframe的onload事件直接加载方法,例:

<iframe οnlοad="setIframeHeight(ifm1);" id="ifm1"  frameborder="0" scrolling="no" src="src" style="width: 100%;heigth: 100%;"></iframe>

 

若Iframe一开始是隐藏,如果显示后高度还有问题,就可以再次执行该方法setIframeHeight(id)

document.getElementById("ifmDiv").style.display="block";
setIframeHeight("ifm1");

 

如果加载的Iframe页面里面加载数据使用的是Ajax请求,避免Iframe加载数据未取回来的情况,则需要等到数据取回来渲染后再设置高度,这样可以通过window.setInterval不断刷新解决这类问题,如下:

function menuPermissionIframeReset(){
    setIframeHeight("menuPermissionIframe"); 
};


function treeMenuClick(event, treeId, treeNode) {
    window.setInterval("menuPermissionIframeReset()", 200); 	 
};

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2014年8月13日 16:57:03 星期三

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值