【发布时间】:2010-10-01 19:51:25
【问题描述】:
我的页面中嵌入了一个 iframe - 它只是我页面的一部分,而不是全部。我正在动态重新加载 iframe,并希望它根据其中内容的高度调整大小。
内容在同一个域中,所以(希望如此?)不需要像Resizing an iframe based on content 中给出的那样复杂的解决方案。
这是我用来调整它大小的代码,但它不起作用。框架重新加载正常,但高度始终保持不变。谁能给点建议?
我也尝试了How to autosize an iframe 中的顶级解决方案,但没有任何运气。
我认为这可能是因为 iframe 内的页面需要一段时间才能加载,所以在设置高度时它还没有完成加载。也许吧。
<iframe frameborder=0 border=0 src="" width="100%" height="400px" name="commentframe" id="commentframe"></iframe>
function reload_frame(uid) {
document.getElementById('commentframe').src = "comments.html?" + uid;
document.getElementById('commentframe').height = document.getElementById('commentframe').contentWindow.document.body.scrollHeight + "px";
}
更新:
尝试,没有运气:
<iframe frameborder=0 border=0 src="" width="100%" height="400px" name="commentframe" id="commentframe" onload="reload_frame()"></iframe>
function reload_frame() {
var commentframe = document.getElementById('commentframe');
commentframe.style.height = (commentframe.scrollHeight + 10).toString() + "px";
}
它确实会调整 iframe 的大小,但只会调整到其原始高度的 +10 像素 - 如果内容比这长,它仍然是隐藏的。
也许我需要在 iframe 本身的主体内添加一个 onload 事件?
【问题讨论】:
-
将
commentframe.style.height更改为commentframe.height(在update部分中)。
标签: javascript html iframe