第一種IFrame通信:
//這個消息從A的作用域發出
this.contentWindow.postMessage({}, "*");
//B作用域開啟監聽獲取A發過來的消息
window.addEventListener('message', function (event) {
});
//B向A發出消息
window.parent.postMessage({ }, '*');
//反過來A接收B發過來的消息
window.addEventListener('message', function (event) {
});
第二種IFrame通信:

//D向E通信
document.getElementById('E IFrame 的ID').contentWindow.postMessage({}, '*');
//接收消息都是同一種方式
window.addEventListener('message', function (event) {
});
---實際運用
//發出消息 this.contentWindow.postMessage({ type: 'message-1', body: { args: '消息內容 可以是任何對象' } }, '*'); //發出消息 document.getElementById('outpAdmissionOrderFrame').contentWindow.postMessage({ type: 'message-2', body: { args: '消息內容 可以是任何對象' } }, '*'); //接收消息 window.addEventListener('message', function event(event) { if (event.data.type === "message-2") { //event.data.body獲取消息內容 //處理 } else if(event.data.type === "message-1"){ //event.data.body獲取消息內容 //處理 } });
