面試題 - 兩個頁面間如何傳遞數據


針對這個問題我只能說說自己的理解了,肯定會有遺漏,畢竟我前端也不怎么會,有其他方法的朋友可以指出來,這樣我也好再學習一下。

1 如果頁面A和頁面B是同域的情況

如果是同域那么兩者之間可以直接通過客戶端存儲來交換數據的,客戶端存儲的方式可以看我前面一篇文章。在同域的假設條件下,如果頁面A和B還是嵌套關系的話,那么可以直接使用腳本讀取對方的數據,更快捷了。

2 如果頁面A和頁面B不同域的情況

頁面A通過點擊鏈接跳轉到頁面B的話,那么數據可以通過search和hash附加在B頁面的URL上,傳遞給頁面B。再如果頁面A跳轉到頁面B的時候target=_self,也就是說它們在同一個瀏覽器窗口先后運行的,那么window對象它們是共享的,因此我們可以通過window.xx來傳遞數據,比如window.name=123;

3 如果頁面A和B,不同域,也沒有跳轉關系

如果瀏覽器支持HTML5的話,我們可以使用window.postMessage來跨域發送數據。

參考鏈接:

http://davidwalsh.name/window-postmessage

http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage

剩下的,除非使用第三方的插件,比如flash,activex或者通過借助中轉服務器,那么兩者之間的數據是無法正常交互的。

上面都是我的理解。歡迎討論。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM