關(guān)于postMessage
window.postMessage雖然說(shuō)是html5的功能,但是支持IE8+,假如你的網(wǎng)站不需要支持IE6和IE7,那么可以使用window.postMessage。關(guān)于window.postMessage,很多朋友說(shuō)他可以支持跨域,不錯(cuò),window.postMessage是客戶端和客戶端直接的數(shù)據(jù)傳遞,既可以跨域傳遞,也可以同域傳遞。
應(yīng)用場(chǎng)景
我只是簡(jiǎn)單的舉一個(gè)應(yīng)用場(chǎng)景,當(dāng)然,這個(gè)功能很多地方可以使用。
假如你有一個(gè)頁(yè)面,頁(yè)面中拿到部分用戶信息,點(diǎn)擊進(jìn)入另外一個(gè)頁(yè)面,另外的頁(yè)面默認(rèn)是取不到用戶信息的,你可以通過(guò)window.postMessage把部分用戶信息傳到這個(gè)頁(yè)面中。(當(dāng)然,你要考慮安全性等方面。)
代碼舉例
發(fā)送信息:
要延遲一下,我們一般用計(jì)時(shí)器setTimeout延遲再發(fā)用。
接受的頁(yè)面
如下圖,接受頁(yè)面得到數(shù)據(jù)
如果是使用iframe,代碼應(yīng)該這樣寫(xiě):