例如:
<iframe name="Stack" src="http://stackoverflow.com/" width="740"
frameborder="0" scrolling="no" id="iframe"> ...
</iframe>
我希望它能够根据里面的内容来调整它的高度,而不使用滚动。
例如:
<iframe name="Stack" src="http://stackoverflow.com/" width="740"
frameborder="0" scrolling="no" id="iframe"> ...
</iframe>
我希望它能够根据里面的内容来调整它的高度,而不使用滚动。
当前回答
jq2('#stocks_iframe').load(function(){
var iframe_width = jq2('#stocks_iframe').contents().outerHeight() ;
jq2('#stocks_iframe').css('height',iframe_width); });
<iframe id='stocks_iframe' style='width:100%;height:0px;' frameborder='0'>
其他回答
避免使用内联JavaScript;你可以使用一个类:
<iframe src="..." frameborder="0" scrolling="auto" class="iframe-full-height"></iframe>
用jQuery引用它:
$('.iframe-full-height').on('load', function(){
this.style.height=this.contentDocument.body.scrollHeight +'px';
});
我在过去调用iframe时遇到过问题。onload用于动态创建iframe,所以我用这种方法来设置iframe大小:
iFrame视图
var height = $("body").outerHeight();
parent.SetIFrameHeight(height);
主要的观点
SetIFrameHeight = function(height) {
$("#iFrameWrapper").height(height);
}
(这只会工作,如果两个视图在同一个域)
以下是精简版:
<iframe src="hello.html" sandbox="allow-same-origin"
onload="this.style.height=(this.contentWindow.document.body.scrollHeight+20)+'px';">
</iframe>
这适用于我(也与多个iframe在一个页面):
$('iframe').load(function(){$(this).height($(this).contents().outerHeight());});
jQuery的.contents()方法允许我们在DOM树中搜索元素的直接子元素。
jQuery:
$('iframe').height( $('iframe').contents().outerHeight() );
记住,在iframe内的页面主体必须有它的高度
CSS:
body {
height: auto;
overflow: auto
}