我有一个iframe需要在每次加载时重新调整它的高度,我尝试了很多例子但是所有这些都在IE和Chrome上工作正常而不是FireFox,直到我尝试了这个并且它有效关于一切
function autoResize() {
var subscriptionFrame = jQuery("#frame_name_here");
var innerDoc = (subscriptionFrame.get(0).contentDocument) ? subscriptionFrame
.get(0).contentDocument
: subscriptionFrame.get(0).contentWindow.document;
if (innerDoc.body.scrollHeight == 0)
innerDoc.location.reload(true);
subscriptionFrame.height(innerDoc.body.scrollHeight + 10);
}
<iframe src="uploadFile.xhtml" class="upload-iframe"
id="frame_name_here" onload="autoResize();"></iframe>
但是有一个问题,这个脚本多次调用onload(递归),任何想法为什么?
答案 0 :(得分:0)
我找到了一个答案,iframe部分显示为none,这并不意味着它不在Dom树中,这就是递归部分发生的原因,因为iframe在这种情况下没有得到任何显示iframe之前的高度,并通过resize函数读取高度的内容。为了解决这个问题而不是display:none
,我使得iframe部分没有在dom树中呈现,直到某个动作,所以此操作的resize方法只会读取一次内容。