Movatterモバイル変換


[0]ホーム

URL:


  1. 給開發者的 Web 技術文件
  2. Web API
  3. Channel Messaging API

此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in EnglishAlways switch to English

Channel Messaging API

備註: 此功能可在Web Worker 中使用。

Channel Messaging API 允許兩個分別運行於不同瀏覽上下文且附加至同一文件的腳本(例如,兩個 IFrame,或主文件與一個 IFrame,兩個透過SharedWorker 的文件,或兩個 worker)直接進行通訊,透過雙向通道(或管道)在兩端的埠之間傳遞訊息。

概念與使用方式

可以使用MessageChannel() 建構子來建立一個訊息通道。一旦建立後,通道的兩個埠可以透過MessageChannel.port1MessageChannel.port2 屬性存取(這兩者都會回傳MessagePort 物件)。建立通道的應用程式使用port1,而另一端的應用程式使用port2——你可以向port2 發送訊息,並使用window.postMessage 傳遞兩個參數(要發送的訊息以及要轉移所有權的物件,在此情況下為埠本身)將埠轉移到另一個瀏覽上下文。

當這些可轉移物件被轉移後,它們在先前所屬的上下文中將無法再使用。例如一個埠,一旦被傳送,在原本的上下文中將無法再使用。

另一個瀏覽上下文可以使用onmessage 監聽訊息,並透過事件的data 屬性抓取訊息的內容。然後,你可以使用MessagePort.postMessage 回應,將訊息傳回原始文件。

當你想停止透過通道傳送訊息時,可以調用MessagePort.close 關閉埠。

使用通道訊息中了解更多有關如何使用此 API 的資訊。

介面

MessageChannel

建立一個新的訊息通道以傳送訊息。

MessagePort

控制訊息通道上的埠,允許從一個埠發送訊息並監聽另一個埠接收訊息。

範例

規範

Specification
HTML
# channel-messaging

瀏覽器相容性

api.MessageChannel

api.MessagePort

參見

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp