MessageChannel: port2 属性

注意:此功能在 Web Workers 中可用。

port2MessageChannel 接口的只读属性,返回消息信道的第二个端口——连接到信道另一端上下文的端口,消息最初发送到该端口。

表示信道第二个端口的 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 表格仅在浏览器中加载

另请参阅