Я смущен с postMessage
и MessageChannel
.Застрял в postMessage и 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?
Решил все мое замешательство, спасибо, что поделился! – huachengzan