第一種IFrame通訊:post
//這個消息從A的做用域發出this
this.contentWindow.postMessage({}, "*");spa
//B做用域開啓監聽獲取A發過來的消息code
window.addEventListener('message', function (event) {
});對象
//B向A發出消息blog
window.parent.postMessage({ }, '*');作用域
//反過來A接收B發過來的消息get
window.addEventListener('message', function (event) {
});io
第二種IFrame通訊:event
//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獲取消息內容 //處理 } });