2011-11-09 25 views
8

我已经看到一些优雅的解决方案,从iframe中获取父母文档 - 比如, this one。但是,我无法使它工作 - 我认为这不可能是由于证券问题(跨域脚本?)?从iFrame获取家长文档

我的问题是;我仍然可以从iframe中访问父母文档吗?或者最近这些年改变了吗?如果我能够访问这个;从iframe的内容中打印parent.documentwindow.parent.document的任何想法为什么我会变得不明确?

+0

'window.top'一般工作。 – Salman

回答

19

只要域匹配,仍然可以从帧内访问父级。

例如,看看这些小提琴:

您可以通过访问父:

window.parent 
parent 
top   //If the parent is the top-level document 
window.top 

变量parenttop可以被覆盖(通常不是意)。使用window.parent更安全是更安全的。或者,您可以用document.defaultView替换window

+0

Thx!域不匹配,所以这显然是一个问题。现在你说出来了,我知道我已经阅读过这段时间了。当域名不匹配时,您无法访问父母文档。因此,当框架内容位于不同的域时,我的问题无法解决。对? – stiank81

+0

还有一些技巧仍然在不同的领域进行沟通。看看[这篇冗长的文章](http://softwareas.com/cross-domain-communication-with-iframes)。如果两个页面都在同一个域中提供,但具有不同的子域,则设置['document.domain'](https://developer.mozilla.org/en/DOM/document.domain)将有所帮助。否则,如果您是这两个网站的所有者,则可以实现['window.postMessage'](https://developer.mozilla.org/en/DOM/window.postMessage)。 –