【问题标题】:How do you access the top level of the DOM from jQuery?如何从 jQuery 访问顶级 DOM?
【发布时间】:2010-11-07 02:42:54
【问题描述】:

试图解决这个问题...我试图从 iframe 内部访问 dom 的顶层。这怎么可能?

【问题讨论】:

    标签: javascript jquery dom iframe


    【解决方案1】:

    从框架内部,您始终可以使用window.top 到达顶层。您可以使用以下方法检查您是否在框架中:

    var iAmInAFrame = (window.top == window.self);
    

    如果您共享一个域,您应该能够使用 window.top.document.whatever(例如 body、getElementById() 等)来操作顶级文档。

    【讨论】:

      【解决方案2】:

      您可以将 window.parent.document 附加到您的调用中以获取父级。

      例如

      $('body', window.parent.document).append("this is coming from my iframe");
      

      编辑:正如下面的 cmets 中所述,iframe 必须从与父级相同的域提供服务,否则浏览器的安全限制将阻止这种情况。

      【讨论】:

      • +1。前提是 iframe 可以访问父级(同一域)。
      【解决方案3】:

      要在 iframe 的内部 DOM 中使用选择器和 jQuery 函数,可以使用 Traversing/contents 函数。

      $("iframe").contents().find("body").append("I'm in an iframe!");
      

      【讨论】:

      • 我知道,但是如何从 iframe 内部访问外部世界?
      【解决方案4】:

      只需使用document.firstElementChild。 为我工作。它提供了顶级 html 元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2014-03-18
        • 2012-01-26
        • 1970-01-01
        • 2014-12-19
        • 2021-01-28
        • 1970-01-01
        相关资源
        最近更新 更多