如何获得父窗口';使用jQuery从iFrame中选择的高度?

如何获得父窗口';使用jQuery从iFrame中选择的高度?,jquery,dom,iframe,Jquery,Dom,Iframe,在iFrame中,我们需要获取父级的窗口/文档高度 有没有一种方法可以使用jQuery获得这个结果 我知道我们可以使用$(document).height()获得页面高度。我只是不知道如何从iFrame中获取父对象的值。jQuery不是必需的 parent.document.body.clientHeight 这对我使用IE7和FF3是有效的。我在一个网站上尝试了clientHeight方法,两个iFrame都在同一个域上,但都不起作用。(返回0) 经过大量测试后,我发现最好的方法(我很高兴知道

在iFrame中,我们需要获取父级的窗口/文档高度

有没有一种方法可以使用jQuery获得这个结果

我知道我们可以使用
$(document).height()
获得页面高度。我只是不知道如何从iFrame中获取父对象的值。

jQuery不是必需的

parent.document.body.clientHeight


这对我使用IE7和FF3是有效的。

我在一个网站上尝试了clientHeight方法,两个iFrame都在同一个域上,但都不起作用。(返回0)

经过大量测试后,我发现最好的方法(我很高兴知道更好的方法)是在父级上创建一个返回文档高度的函数,如:

家长:

function getDocumentHeight(){
   return $(document).height();
}
var parentDocHeight = parent.getDocumentHeight();
Iframe:

function getDocumentHeight(){
   return $(document).height();
}
var parentDocHeight = parent.getDocumentHeight();

另一种可能性是:

$(window.parent.document).height()
在jQuery中,您可以

$(parent.window).width();

我不认为这将与来自另一个站点的iframe一起工作-是吗?不确定这个问题是否重要。亚当是对的。此代码仅在以下情况下有效。如果不是,请使用postMessage将高度从父对象发送到iframe.@bfred。您是否可以详细说明在该场景中可以使用的语法?根据你的建议,我正试图用postMessage自己来做这件事。我正在尝试获取300x250 iframe所在的窗口/浏览器的高度和宽度。使用iframe中的
parent.postMessage(…)
请求高度;在主窗口中收听
消息
事件;用
iframe.postMessage(document.body.clientHeight)
响应。MDN上的完整请求/响应代码: