我的index.html页面上有一个动态的iframe。
在我的index.html页面上,我有一个表单,当提交时,结果会显示在iframe内。
问题是iframe的高度也必须是动态的,以使网站看起来“整洁”。
因此,在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比实际要大得多。我尝试了alert scrollHeight,在Chrome和Safari中,数字始终约为2000px,但在其他浏览器中,它就像应该的那样是动态的(500、300、800等)... 有什么想法吗?
更新:我注意到当我点击索引上的链接,然后点击浏览器的后退按钮时,iframe在Safari和Chrome中确实可以正确地调整大小。但我必须在浏览器中点击后退才能起作用...
请参见此问题以获取更多信息:Can't figure out why Chrome/Safari can't get the ScrollHeight right here
<body onload="...">
是调用页面加载函数的唯一标准化方式。 - Tim DownOnLoad="myStartupCode();"
更好,因为这显然更容易维护。但是确实,他可能在参与库 snobbery。 - Hoganwindow.onload = ...
,而不是在 HTML 中。 - Marcel Korpel