2011-02-09 66 views
8

我将如何使iframe的身高适应其内容?我假设你会计算内容高度和iframe高度(我不知道该怎么做)之间的差异,并使用while循环来增加一个变量以用作高度,但是我无法包裹我的回头讨论如何实际做这些事情。在问之前:是的,框架中的内容来自我的网站。不是跨域的。使iframe身高适合内容

+0

有谁还在使用框架? – yoda 2011-02-09 01:22:56

+6

@yoda他的意思是iframe,他们只能用在像Google和Facebook这样的websphere中微不足道的公司。 – 2011-02-09 01:45:40

+0

裱框内容在您的网站? – Trufa 2011-02-09 01:45:41

回答

1

不明白为什么要使用iframe,而不是动态的div填满,比如说,通过AJAX,但:

把iframe中的内容转换成一个div,然后获取div的高度。我建议使用jQuery像这样:

$("#divId").height(); 

但是,如果你不能使用jQuery的,你应该能够使用:

document.getElementById("divId").offsetHeight; 

然后,你需要设置iframe的高度无论你得到什么。

的jQuery:

$("#iframeId").height($("#divId").height()); 

定期JS:

document.getElementById("iframeId").style.height = 
document.getElementById("divId").offsetHeight; 
0
<iframe id="moo" src="something.html"><iframe> 
<script> 
function onContentChange(){ 
    var NewSize=$('moo').getScrollSize(); 
    $('moo').setStyles({ 
    width: NewSize.x, 
    height: NewSize.y 
    }); 
} 
</script> 

和somthing.html内,在底部或onload事件做的

window.parent.window.onContentChange() 
东西线
0

动态呈现javasc中的iframe一旦容器元素(“td1”)被绘制就撕裂。

<script type="text/javascript"> 
    var iframesrc = "@Href("~/about")"; 
    function init() { 
    var vHeight = document.getElementById("td1").offsetHeight; 
    document.getElementById("td1").innerHTML="<iframe style=\"width:100%; height:" + vHeight + "px\" src=\"" + iframesrc + "\"></iframe>"; 
    } 
    window.onload = init; 
</script> 

...

<td id="td1" style="width: 100%; height:100%;">     
</td> 
0

这里的使用jQuery的解决方案:

$('#iframe').height($('#iframe').contents().find('body').height());