我对postMessage
and感到困惑MessageChannel
。
以下是来自MDN的一些代码:
var channel = new MessageChannel();
var para = document.querySelector('p');
var ifr = document.querySelector('iframe');
var otherWindow = ifr.contentWindow;
ifr.addEventListener("load", iframeLoaded, false);
function iframeLoaded() {
otherWindow.postMessage('Hello from the main page!', '*', [channel.port2]);
}
channel.port1.onmessage = handleMessage;
function handleMessage(e) {
para.innerHTML = e.data;
}
我认为postMessage
方法只能接受两个参数,上面的代码表明它可以接受三个,但是方法的第三个参数什么都没有postMessage
。
所以有我的问题:
方法的第三个参数是什么意思
postMessage
?我知道 的用法
MessageChannel
,但它似乎没用,我们为什么/何时应该使用 MessageChannel?