第一种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获取消息内容 //处理 } });