2013-09-26 29 views
0

我已经实施了此前文章Resizing an iframe based on content中描述的解决方案,它几乎可以很好地工作,但不是很完美。根据内容不一致高度计算调整iFrame的尺寸

我得到的问题是,有时它会正确计算高度,有时会计算得太短,内容会被截断。

我正在寻找一些建议,可能会导致这种情况,因为其他人似乎都有成功。在我看来,如果高度计算不正确,那么可能在所有数据从外部源加载到iFrame之前进行计算。但这是一个猜测,我绝不是JS专家。

我能做些什么来确保在外部页面加载完成后进行计算?

回答

0

正确计算高度几乎是不可能的。我已经玩了很长时间了。我所经历的一件事情是,如果你在iframe中有一个表单,并且表单中有一些错误处理事件。假设有一个隐藏行的表格等等。然后当错误出现时,表格会在行开始出现时变得“更高”,所以高度范围现在又不同了。无论何时在iframe内部进行回贴,都无法控制高度。我已经尝试了所有发布在那里的解决方案,并且无法正确计算它。我不得不估计“最高”的高度,并且硬编码它是那个高度。

+0

,会跑进一个如此感谢抬起头。我认为目前我遇到的这个问题与我与之通信的独立应用程序有关,它本身是通过基于机器IP的googlemaps API进行多次调用。我认为在结果清单完全恢复之前正在计算高度。如果我不断刷新,有时候我会看到一切都很完美,有时候我不会。很奇怪。 – davidpauljunior

0

我期望的问题是,您需要检测iFrame中的内容何时发生更改,然后再次调整iFrame的大小。在现代浏览器中,您可以使用mutationObserver来执行此操作,但它在IE10中不起作用,因此您必须使用故障回复来解决此问题。

我写了一个小型库,用于处理所有这些问题,并保持iFrame的大小以适应内容。工作在现代浏览器和IE8以上。我从来没有想过的形式问题

https://github.com/davidjbradshaw/iframe-resizer

相关问题