MessageChannel: port2 属性
注意:此功能在 Web Workers 中可用。
port2
是 MessageChannel
接口的只读属性,返回消息信道的第二个端口——连接到信道另一端上下文的端口,消息最初发送到该端口。
值
表示信道第二个端口的 MessagePort
对象,该端口连接到信道另一端上下文的端口。
示例
在下面的代码块中,您可以看到使用 MessageChannel()
构造函数创建了一个新信道。当 IFrame 加载完毕后,我们将 port2
与一条消息一起通过 MessagePort.postMessage
传递给 IFrame。然后,handleMessage
处理程序响应 IFrame 发送回来的消息(使用 onmessage
),并将消息放入段落中。 port1
用于监听,以检查消息何时到达。
js
const channel = new MessageChannel();
const para = document.querySelector("p");
const ifr = document.querySelector("iframe");
const 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;
}
有关完整的运行示例,请参阅我们在 GitHub 上的 信道消息传递基本演示(在线运行)。
规范
规范 |
---|
HTML 标准 # dom-messagechannel-port2-dev |
浏览器兼容性
BCD 表格仅在浏览器中加载