【发布时间】:2014-03-13 04:18:01
【问题描述】:
我使用以下代码实现动态iframe高度:
在<head>:
<script language="javascript" type="text/javascript">
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}
</script>
在<body>:
<iframe name="myiframe" src="somepage.html" width="100%" frameborder="0"
scrolling="no" onload='javascript:resizeIframe(this);' />
</iframe>
此代码仅在高度增加时工作正常。因此,当 iframe 内的内容高度增加时,iframe 会更新其高度并随之增加。
问题在于高度减少或缩小。当 iframe 内的内容减少时,它不会减少并导致大量不需要的空白。这只发生在 Chrome 中,IE & FF 工作正常。
我想知道如何让这段代码在 iframe 高度减小时自动收缩?
截图一:
截图二:
更新 1
我把下面的代码放在<head>
<script src="jquery-1.10.2.min.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
var iframeDoc = $('iframe[name="dservers"]').contents().get(0);
$('iframe[name="dservers"]').load(function(){
docHeight = $(iframeDoc).height();
$('iframe[name="dservers"]').height( docHeight );
});
});
<body>中的iframe代码
<iframe name="dservers" src="dual_core.html" width="100%" frameborder="0"
scrolling="no" /></iframe>
iframe 未显示在页面中。它出现一秒钟然后消失。
更新 2
我认为问题在于(function(){ 之前的$ 字符,我将其删除。对不起,我对 jquery 没有太多经验。我更新了页面并删除了onload="resizeFrame()",但 iframe 现在无法动态运行。
【问题讨论】:
-
Duplicate Your previous of the same question here 如果您正确实施,此解决方案将适用于您。
标签: javascript jquery html css iframe