BroadcastChannel:postMessage() 方法

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2022 年 3 月起,它已在各瀏覽器中可用。

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

postMessage() 方法是 BroadcastChannel 介面的一個方法,用於將任何型別的 Object 訊息傳送給具有相同 的任何 瀏覽上下文 中的每個偵聽器。訊息將作為 message 事件傳輸,該事件的目標是繫結到該通道的每個 BroadcastChannel

語法

js
postMessage(message)

引數

message

要傳送到其他視窗的資料。資料使用 結構化克隆演算法 進行序列化。這意味著您可以安全地將各種資料物件傳遞到目標視窗,而無需自行序列化它們。

注意: 可以相互發送訊息的執行上下文可能不在同一個 代理叢集 中,因此無法共享記憶體。 SharedArrayBuffer 物件,或由其支援的緩衝區檢視,無法跨代理叢集進行釋出。嘗試這樣做將在接收端生成一個包含 DataCloneError DOMExceptionmessageerror 事件。

返回值

無。

異常

InvalidStateError DOMException

如果 BroadcastChannel 已關閉,則會丟擲此異常。

DataCloneError DOMException

如果輸入資料的任何部分不可序列化,則會丟擲此異常。

規範

規範
HTML
# dom-broadcastchannel-postmessage-dev

瀏覽器相容性

另見