【发布时间】:2010-11-07 02:42:54
【问题描述】:
试图解决这个问题...我试图从 iframe 内部访问 dom 的顶层。这怎么可能?
【问题讨论】:
标签: javascript jquery dom iframe
试图解决这个问题...我试图从 iframe 内部访问 dom 的顶层。这怎么可能?
【问题讨论】:
标签: javascript jquery dom iframe
从框架内部,您始终可以使用window.top 到达顶层。您可以使用以下方法检查您是否在框架中:
var iAmInAFrame = (window.top == window.self);
如果您共享一个域,您应该能够使用 window.top.document.whatever(例如 body、getElementById() 等)来操作顶级文档。
【讨论】:
您可以将 window.parent.document 附加到您的调用中以获取父级。
例如
$('body', window.parent.document).append("this is coming from my iframe");
编辑:正如下面的 cmets 中所述,iframe 必须从与父级相同的域提供服务,否则浏览器的安全限制将阻止这种情况。
【讨论】:
要在 iframe 的内部 DOM 中使用选择器和 jQuery 函数,可以使用 Traversing/contents 函数。
$("iframe").contents().find("body").append("I'm in an iframe!");
【讨论】:
只需使用document.firstElementChild。
为我工作。它提供了顶级 html 元素。
【讨论】: