--- title: MessageChannel.port1 slug: Web/API/MessageChannel/port1 translation_of: Web/API/MessageChannel/port1 ---
{{domxref("MessageChannel")}} 的只读属性 port1 返回消息通道的第一个端口
, 此端口连接到源上下文通道。
{{AvailableInWorkers}}
channel.port1;
一个 {{domxref("MessagePort")}} 对象, 通道的第一个端口,此端口连接到源上下文通道。
在以下代码块中,您可以看到使用 {{domxref("MessageChannel.MessageChannel", "MessageChannel()")}}构造函数创建的新通道。当{{HTMLElement("iframe")}}加载完毕,我们使用{{domxref("MessagePort.postMessage")}}方法把一条消息和{{domxref("MessageChannel.port2")}}传递给{{HTMLElement("iframe")}}。handleMessage处理程序将会从<iframe>中(使用{{domxref("MessagePort.onmessage")}}监听事件)接收到信息,将数据其放入一个段落。handleMessage 方法关联到 port1用于监听收到的消息。
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; }
一个完整的运行示例,可以在Github上查看 channel messaging basic demo (run it live too).
规范 | 状态 | 备注 |
---|---|---|
{{SpecName('HTML WHATWG', '#dom-messagechannel-port1','port1')}} | {{Spec2('HTML WHATWG')}} | No difference from {{SpecName("HTML5 Web Messaging")}}. |
{{SpecName('HTML5 Web Messaging', '#dom-messagechannel-port1','port1')}} | {{Spec2('HTML5 Web Messaging')}} | W3C version of the spec |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 4 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(41)}} | 10.0 | 10.6 | 5 |
Available in workers | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop(41)}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | 4.4 | 4 | {{CompatVersionUnknown}} | {{CompatGeckoMobile(41)}} | {{CompatVersionUnknown}} | 10.0 | 11.5 | 5.1 |
Available in workers | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile(41)}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |