RTCDataChannel: close 事件

Baseline 已廣泛支援

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

當資料通道的資料傳輸已關閉時,會向 RTCDataChannel 例項上的 onclose 事件處理程式傳送 close 事件。在可以使用 RTCDataChannel 傳輸任何進一步資料之前,必須建立一個新的 'RTCDataChannel' 例項。

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

語法

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

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

onclose = (event) => { }

事件型別

一個通用的 Event

示例

此示例為名為 dcRTCDataChannel 設定了 close 事件的事件處理程式;在此示例中,其職責是更新使用者介面元素,以反映不再有正在進行的呼叫,並允許啟動新呼叫。

js
dc.addEventListener("close", (ev) => {
  messageInputBox.disabled = true;
  sendButton.disabled = true;
  connectButton.disabled = false;
  disconnectButton.disabled = true;
});

響應接收 close 事件,此程式碼所做的就是停用輸入框及其“傳送”按鈕,並啟用用於啟動呼叫的按鈕(同時停用結束呼叫的按鈕)。

您還可以使用 onclose 事件處理程式屬性來設定 close 事件的事件處理程式。

js
dc.onclose = (ev) => {
  messageInputBox.disabled = true;
  sendButton.disabled = true;
  connectButton.disabled = false;
  disconnectButton.disabled = true;
};

規範

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

瀏覽器相容性

另見