如何从iframe中使用javascript获取iframe的高度? 那些包含多个iframe的网页呢?

有没有办法通过从iframe内部执行脚本来检测iframe的高度和宽度? 我需要根据iframe的不同高度/宽度动态定位iframe中的一些元素。

如果同一页面中有多个iframe会有什么区别吗? 即每个iframe想要找到自己的尺寸。

欢迎使用Javascript或jquery解决方案。

谢谢!

 

iframe必须嵌入到其他网站上,正如下面的答案之一所述,我遇到了权限问题。

如果您的iframe页面及其父页面是从不同的域提供的(意味着您无法从iframe页面访问父页面的DOM属性),那么我认为它与您尝试计算视口高度时相同。

为此,请参阅:

  • 使用JavaScript获取浏览器视口尺寸

或者可能这样:

请注意这样的代码:

 var thisIframesHeight = window.parent.$("iframe.itsID").height(); 

只有iframe和父窗口的来源来自同一个域时才会安全。 如果不是,您将获得许可被拒绝的问题,您将不得不采取另一种方法。

可能有点晚了,因为所有其他答案都比较旧:-)但是……这是我的解决方案。 在实际的FF,Chrome和Safari 5.0中测试过。

CSS:

 iframe {border:0; overflow:hidden;} 

JavaScript的:

 $(document).ready(function(){ $("iframe").load( function () { var c = (this.contentWindow || this.contentDocument); if (c.document) d = c.document; $(this).css({ height: $(d).outerHeight(), width: $(d).outerWidth() }); }); }); 

希望这会对任何人有所帮助。

我认为每个都需要一个id 。 然后在你会像这样引用它:

var thisIframesHeight = window.parent.$("iframe#itsID").height();

是的,你可以从框架内部执行父窗口函数,并传递参数,如下所示:

 window.parent.FUNC_NAME(iframe_height,iframe_width) 

只记得在父窗口中定义函数FUNC_NAME