2011-11-09 75 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)。 –