设置iframe自动高度iframe自适应高度

2013/11/03 2288点热度 0人点赞 0条评论

当页面引入iframe的时候,经常的出现滚动条,现在要让iframe自适应高度

 <iframe id="workspace" src="" name="workspace" style="overflow-y:auto;" frameborder="0" width="100%" height="100%" scrolling="no"></iframe>

调整代码

function doIframe(){
	o = document.getElementsByTagName('iframe');
	for(i=0;i<o.length;i++){
		if (/\bautoHeight\b/.test(o[i].className)){
			setHeight(o[i]);
			addEvent(o[i],'load', doIframe);
		}
	}
}

function setHeight(e){
	if(e.contentDocument){
		e.height = e.contentDocument.body.offsetHeight + 35;
	} else {
		e.height = e.contentWindow.document.body.scrollHeight;
	}
}

function addEvent(obj, evType, fn){
	if(obj.addEventListener)
	{
	obj.addEventListener(evType, fn,false);
	return true;
	} else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
	return r;
	} else {
	return false;
	}
}

if (document.getElementById && document.createTextNode){
 addEvent(window,'load', doIframe);	
}

使用方法

function reinitIframe(){
	var iframe = document.getElementById("workspace");
	try{
	    var bHeight = iframe.contentWindow.document.body.scrollHeight;
	    var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
	    var height = Math.max(bHeight, dHeight);
	    iframe.height =  height;
	}catch (ex){
	}
}
window.setInterval("reinitIframe()", 200);

iframe随窗口大小变化而变

//iframe随浏览器窗口的大小变动
	var pagestyle = function() {
		var iframe = $("#workspace");
		$("#divRight").width($(window).width()-186);
		var w = $(window).width()-iframe.offset().left;
		iframe.width(w);
		var h = $(window).height()-iframe.offset().top;
		if(h>0){
		   iframe.height(h);
		}
	}
	//注册窗体改变大小事件 
	$(window).resize(pagestyle);

yxkong

这个人很懒,什么都没留下

文章评论