平時做web開發(fā)的時候關(guān)于消息傳遞懈叹,除了客戶端與服務(wù)器傳值還有幾個經(jīng)常會遇到的問題
1.頁面和其打開的新窗口的數(shù)據(jù)傳遞
2.多窗口之間消息傳遞
3.頁面與嵌套的iframe消息傳遞
4.上面三個問題的跨域數(shù)據(jù)傳遞
postMessage()
這些問題都有一些解決辦法乖杠,但html5引入的message的API可以更方便、有效澄成、安全的解決這些難題胧洒。postMessage()方法允許來自不同源的腳本采用異步方式進行有限的通信,可以實現(xiàn)跨文本檔墨状、多窗口卫漫、跨域消息傳遞。
postMessage(data,origin)方法接受兩個參數(shù)
1.data:要傳遞的數(shù)據(jù)肾砂,html5規(guī)范中提到該參數(shù)可以是JavaScript的任意基本類型或可復(fù)制的對象汛兜,然而并不是所有瀏覽器都做到了這點兒,部分瀏覽器只能處理字符串參數(shù)通今,所以我們在傳遞參數(shù)的時候需要使用JSON.stringify()方法對對象參數(shù)序列化粥谬,在低版本IE中引用json2.js可以實現(xiàn)類似效果