中的腳本如何能夠包含任何包含它的頁面概念?框架中的腳本可以訪問它之外的任何環境嗎?跨域呢?iframe訪問父級DOM?
直到現在我相信一個是完全對包含頁面不可知的,但我已經看到一個與此信念相矛盾的例子。
關於包含頁面,內究竟能做什麼和不能做什麼?
中的腳本如何能夠包含任何包含它的頁面概念?框架中的腳本可以訪問它之外的任何環境嗎?跨域呢?iframe訪問父級DOM?
直到現在我相信一個是完全對包含頁面不可知的,但我已經看到一個與此信念相矛盾的例子。
關於包含頁面,內究竟能做什麼和不能做什麼?
如果iframe及其父項的內容具有相同的域,則可以使用parent.document.getElement...
從iframe訪問父頁 - 但不能執行此跨域。
通常,您不能在跨域的兩個DOM之間進行通信。但是,有一種方法可以使用iframe的url的哈希部分在兩者之間傳遞消息。對於同一個域上的iframe,請參閱oezi's answer。
This might be of some help,關於這個話題還有很多其他問題。
有趣的文章,奇怪它作爲Safari瀏覽器,鉻,火狐,歌劇,甚至MSIE8支持它還沒有足夠的支持,否認html5的postmessage支持它。使用jquery postmessage插件(它使用您鏈接的文章中使用的一些技術),它變得完全跨瀏覽器。 – futtta 2010-04-12 09:27:32
我認爲這是可以理解的 - 它是在2008年3月寫的:)這個jQuery插件聽起來很有趣。 – 2010-04-12 09:45:42
看看這篇文章,寄託都需要了解XSS iframe出現
http://softwareas.com/cross-domain-communication-with-iframes
如果它們不在同一個域中,你可以通過溝通網址片段/散列的一些信息。這裏是這一進程的一個很好的例子......
僅供參考,'top'是頂級的文件,'self'是當前文檔和'parent'高於當前文檔。 – cryo 2010-04-12 09:08:35
每天學習新東西:) – 2010-04-12 09:46:12
@oezi,我有一個文檔從不同的域加載iframe。我能夠從該iframe中加載的文檔中操作iframe屬性。我使用parent.document.getElementById()來獲取元素,然後使用$(ele).attr('width','100%')添加一個屬性; 我不知道爲什麼它爲我工作。讓我知道你是否想知道我的環境的任何細節,以更好地瞭解這個問題。謝謝 – Rishabh 2014-06-30 20:47:10