【问题标题】:How can I get a parent window's height from within iFrame using jQuery?如何使用 jQuery 从 iFrame 中获取父窗口的高度?
【发布时间】:2010-10-18 14:47:55
【问题描述】:

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

有没有办法使用 jQuery 来获得这个?

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

【问题讨论】:

    标签: jquery dom iframe


    【解决方案1】:

    不需要jQuery。

    parent.document.body.clientHeight

    这对我来说适用于 IE7 和 FF3。

    【讨论】:

    • 我认为这不适用于来自另一个站点的 iframe - 会吗?但是不确定问题是否在意。
    • 亚当是正确的。此代码仅适用于the domain is the same。如果不是,请使用 postMessage 将高度从父级发送到 iframe。
    • @bfred.it 您能否详细说明您可以在这种情况下使用的语法?根据您的建议,我正在尝试使用 postMessage 自己执行此操作。我正在尝试获取 300x250 iframe 所在的窗口/浏览器的高度和宽度。
    • 在iframe中用parent.postMessage(...)请求高度;在主窗口收听message事件;回复iframe.postMessage(document.body.clientHeight)。 MDN 上的完整请求/响应代码:developer.mozilla.org/en-US/docs/Web/API/Window/…
    【解决方案2】:

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

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

    家长:

    function getDocumentHeight(){
       return $(document).height();
    }
    

    iframe:

    var parentDocHeight = parent.getDocumentHeight();
    

    【讨论】:

      【解决方案3】:

      另一种可能是:

      $(window.parent.document).height()
      

      【讨论】:

        【解决方案4】:

        在 jQuery 中你可以这样做

        $(parent.window).width();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-11
          • 1970-01-01
          • 2013-04-07
          • 1970-01-01
          相关资源
          最近更新 更多