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