當項目中需要引入一個當獨的頁面的時候,可以使用iframe實現。
主頁面和子頁面的通信:
1.主頁面和子頁面同源,主頁面可以通過window.frames[子頁面的iframename]來獲取子頁面的window對象。也可以通過getElementById(子頁面的iframeid).contentWindow來獲取window對象。
子頁面可以通過parent屬性來獲取父頁面window對象(注意:如果沒有父頁面,parent即為當前頁面的window對象。所以可以通過parent===window來判斷是否有沒父副頁面)
2.主頁面和子頁面同頂級域名,當時二級域名不同。
這個情況:主頁面訪問子頁面的方法會報錯。但是子頁面調用父方法正常.
解決方案:主頁面和子頁面設置相同的document.domain
3.主頁面跟子頁面不同源
1.通過子頁面監聽hashchange事件,父頁面修改子頁面hash的方式
通過中間層
2. 通過postMessage方式。第一個參數是傳輸數據、第二個是origin.
指明目標窗口的源,協議+主機+端口號[+URL],URL會被忽略.設置為*代表所有都可以接受.注意:要傳遞數據,必須獲取iframe的window對象。
3.window.name
4.再調套多一層iframe做中間層。
iframe通信
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...