Javascript 如何动态计算iframe的高度?

Javascript 如何动态计算iframe的高度?,javascript,Javascript,我试图使用 document.getElementById('iframe1').contentWindow.outerHeight contentWindow.outerHeight在不同的浏览器中采用不同的值,但实际上并没有给出正确的高度值。另外,在internet explorer中,我看到一个错误“访问被拒绝” 我试图在iframe中显示的页面在加载时没有任何问题。您可以签出: 由于您确实在某些浏览器中获得了值,但在IE中没有,因此我假设这不是跨域问题 contentWi

我试图使用

document.getElementById('iframe1').contentWindow.outerHeight  
contentWindow.outerHeight在不同的浏览器中采用不同的值,但实际上并没有给出正确的高度值。另外,在internet explorer中,我看到一个错误“访问被拒绝”

我试图在iframe中显示的页面在加载时没有任何问题。

您可以签出:


由于您确实在某些浏览器中获得了值,但在IE中没有,因此我假设这不是跨域问题

contentWindow.outerHeight
在IE中不适用,除非我添加:

以下内容似乎在所有浏览器中都最有效:

contentWindow.document.body.offsetHeight;

请注意,不同的浏览器呈现HTML的方式略有不同,具体取决于CSS默认值、包装算法等。因此,您不可能在一个浏览器中获得与在另一个浏览器中相同的高度。

我相信您问题的措辞笨拙地反映了您试图实现的目标。从您的代码示例来看,您似乎希望获得
元素中显示的页面高度,然后将iframe设置为该高度以消除滚动条,对吗?如果是这样的话,那么您将遇到这些访问策略,这些策略使得实现这一点比您想象的更困难。你应该看看postMessage,有一个很棒的jQuery插件,不过你也可以在vanilla JS中实现这一点。基本思想是在内部页面和外部页面之间发送消息。@Craig,TheW3Schools url并没有给出高度。在我的情况下,它是空的。@Jasper。对我正在尝试获取iframe中显示的页面高度。但是,我试图显示的页面没有任何访问问题。@Anonymous这就是
访问被拒绝
消息的全部内容。外部页面无法访问内部页面,这是一个安全问题。若要在外部页面和内部页面之间进行所需的访问,请确保两者位于完全相同的域上,并且在这两个域上使用完全相同的协议。除了我建议的解决方案之外,可能还有其他解决方案,但我建议这样做是因为它对我有效,而且在访问外部页面时,当有人从域中删除
www
时,它不会中断。