MDN文档中记载在未归类事件的message事件存在:
const worker = new Worker(“static/scripts/worker.js”);
worker.postMessage(‘hello’);
所以父页面和子页面通信的时候
window.addEventListener(“message”,function(),false)
可以触发该方法
//父元素
window.addEventListener('message', function(e) {
if(e.data == "scanCode"){
const iframeId = document.getElementById("iframeId");
iframeId.contentWindow.postMessage("父元素收到了!","*")
.......
}
}, false);
//子元素
window.addEventListener(
"message",
(e) => {
console.log(e.data == "父元素收到了!");
},
false
);
........
<button onclick={()=>{
window.parent.postMessage("发给父元素","*")
//*表示任何页面,不需要指定页面 如:http://baidu.com
}></button>