1. 程式人生 > >postMessage解決跨域、解決iframe跨視窗訊息傳送

postMessage解決跨域、解決iframe跨視窗訊息傳送

       在開發過程中總是遇到各種各樣的問題,比如跨域,今天說的是iframe的postMessage跨域,是H5的一個跨域方式,直接上使用的程式碼:

1、子頁面向主頁面傳送訊息

// str是一個物件,JSON.stringify是JS將一個數組或者是物件轉換成一個JSON字串;
// 後面的*是傳遞給所有的視窗    
window.parent.postMessage(JSON.stringify(str),"*");    
// 上層父級頁面接收訊息
window.addEventListener('message',function(e){
// 接收到訊息之後的業務處理邏輯
// 其中e.data是傳過來內容
// 其中e.source 傳過來的物件
}

2、主頁面向子頁面傳送訊息

// 主頁面給子頁面傳送訊息
var childIframe= document.getElementById('child');
//傳送訊息
childIframe.contentWindow.postMessage({"a":"111"},"*");

// 子頁面接收訊息
window.addEventListener('message',function(e){
	// 接收到訊息之後的業務處理邏輯
	// 其中e.data是傳過來內容
	// 其中e.source 傳過來的物件
	// 其中e.origin 傳送訊息視窗的源(協議+主機+埠號)
})