为什么这个js代码不能在Chrome和Safari中运行?

时间:2010-10-03 11:37:58

标签: javascript html css iframe

我的index.html上有一个iframe,这个iframe是动态的。

在我的index.html上我有一个表单,在提交时会在iframe中显示结果。

问题是Iframes的高度也必须是动态的,以使网站看起来“干净”。

所以在Iframes php页面中,我有这段代码:

<body onload="parent.resize_iframe(document.body.scrollHeight)">

在index.html(在这种情况下是父节点)中我有这个功能:

function resize_iframe(new_height){
    byId('iframe001').style.height=parseInt(new_height) + 20 + 'px';
}

这里的问题不是功能,而是Safari和Chrome认为scrollHeight比它更大。

我已经尝试过警告scrollHeight,并且在Chrome和Safari中nr总是大约2000px,但在其他浏览器中它应该是动态的(500,300,800等)......

有什么想法吗?

更新

我注意到当我点击索引上的链接,然后点击浏览器后退按钮时,iframe会在SAFARI和CHROME中正确调整大小。

但我必须在浏览器中单击它才能使其正常工作......

请参阅此问题以获取更多信息:Can't figure out why Chrome/Safari can't get the ScrollHeight right here

2 个答案:

答案 0 :(得分:0)

我不确定,但是我想说出我想说的话。 Safari和Chrome都是基于webkit的浏览器,因此它的行为正常。所以我猜他们计算高度添加填充和边距到正常高度。请谷歌“webkit计算风格”

答案 1 :(得分:0)

当页面出现验证错误时,有时javascript无法正常工作。

首先尝试验证您的标记(HTML)。

如果验证不起作用,请尝试使用jQuery。

jQuery是跨浏览器兼容的;你应该在每个浏览器上得到完全相同的结果。