RTCDataChannel: open 事件

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

當用於傳送和接收資料通道訊息的底層傳輸通道開啟或重新開啟時,WebRTC 的 open 事件會被髮送到 RTCDataChannel 物件的 onopen 事件處理程式。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("open", (event) => { })

onopen = (event) => { }

事件型別

一個 RTCDataChannelEvent。繼承自 Event

Event RTCDataChannelEvent

事件屬性

還繼承了其父介面 Event 的屬性。

channel 只讀

返回與該事件關聯的 RTCDataChannel

示例

此示例為 RTCDataChannel dc 添加了一個 open 事件的處理程式。該處理程式在連線建立後調整使用者介面,以指示聊天視窗已準備就緒可供使用。它啟用了訊息輸入框和傳送按鈕,同時啟用了斷開連線按鈕並停用了連線按鈕。最後,焦點被設定到訊息輸入框,以便使用者可以立即開始輸入。

js
dc.addEventListener("open", (ev) => {
  messageInputBox.disabled = false;
  sendMessageButton.disabled = false;
  disconnectButton.disabled = false;
  connectButton.disabled = true;

  messageInputBox.focus();
});

這也可以透過直接設定通道的 onopen 事件處理程式屬性值來完成。

js
dc.onopen = (ev) => {
  messageInputBox.disabled = false;
  sendMessageButton.disabled = false;
  disconnectButton.disabled = false;
  connectButton.disabled = true;

  messageInputBox.focus();
};

規範

規範
WebRTC:瀏覽器中的即時通訊
# event-datachannel-open
WebRTC:瀏覽器中的即時通訊
# dom-rtcdatachannel-onopen

瀏覽器相容性

另見