【发布时间】:2010-10-03 12:04:58
【问题描述】:
我刚刚问了一个问题,为什么某些 js 代码不能 100% 在 Chrome 和 Safari 中运行,但经过更多故障排除后,我想我发现这是我应该发布的问题。
我有一个页面,其中有一个表单。此表单的目标是同一页面上的 iframe。 iframe 是动态的,并且基于 php。
这是我的 php iframe 内容的底部:
<body onload="parent.resize_iframe(document.body.scrollHeight)">
<?php echo $display_table; ?>
如您所见,我调用了一个函数来调整 iframe 在主页面(父页面)中的高度。
这很好用,实际上它确实会调整大小,但是在 Chrome 和 Safari 中,调整大小设置的高度“高于”应有的高度。因此,如果高度为 500 像素,Chrome 和 Safari 会将其设置为 2000 像素左右,这是 iframe 文档高度的最大值。
这是为什么?一种想法可能是在将 scrollHeight 发送到 resize 函数之前 body 没有完全加载?
有没有办法让它等到文档完全加载?
让我感到困惑的一件事是,当我单击主页上的链接,然后回击时,页面调整大小效果很好,并且设置为 500 像素,即使在 Chrome/Safari 中也应该如此。但那是我在浏览器中点击“返回”的时候。
嗯,我真的不明白,所以请在这里帮助我。
谢谢
【问题讨论】:
-
你能显示
resize_iframe吗? -
Webkit 浏览器通常会混淆
<body>元素。您可能会发现在<body>中嵌套<div>并对其进行操作是否效果更好。
标签: javascript jquery google-chrome safari webkit