2014-02-07 154 views
0

存在severalanswers动态调整大小的问题,该iframe一旦加载就不会自动更改大小。不过,我有一个iframe加载一个表单,它根据用户输入(即jQuery验证,PHP验证,基于输入打开的div等)向页面添加高度来更改大小(特别是其高度)。动态调整动态iframe的大小

有没有办法改变iframe的大小,即使在加载之后,根据其大小的变化?将滚动添加到iframe看起来很混乱。

+0

你有没有尝试'min-height'属性在CSS? – KarelG

+0

是的,这可能是一个选项。问题是高度可能因不同的浏览器和分辨率而不同,所以我更喜欢动态设置的东西。 – Josh

+0

如果存在对此问题的非JS解决方案,它也将是'很好'(但也许不现实)。 – Josh

回答

0

如果在用户输入值后刷新页面,该怎么办?

0

您可以设置一个时间间隔,每隔200毫秒检查帧的内部大小是否在帧的'.contentDocument'属性中。 d调整帧的大小。

这将是这个样子:

var targetFrame = document.getElementById("InnerFrame"); 
var targetDocument = (targetFrame.contentWindow.document || targetFrame.contentDocument); 

window.frameInterval = window.setInterval(function(){ 
    targetFrame.height = targetDocument.body.height; 
},200); 

我没有测试过这一点,因为的jsfiddle不允许有URL的I帧。 但它可以让你开始。

+0

我试过这个,它只在iframe中加载一小部分。 – Josh

+0

这可能意味着JavaScript不能正常工作。 我没有测试过这段代码,但它可以让你开始。 我会看看晚饭后我能为你做些什么。 –

+0

感谢您的帮助。我在控制台中看不到任何JS错误。 – Josh