动态标准 — 最后更新于 2024年9月12日
以前,WebSocket
接口在此定义。现在,它在 WebSockets 中定义。 [WEBSOCKETS]
MessageEvent
接口所有当前引擎均支持。
在 服务器发送事件、跨文档消息传递、通道消息传递、广播通道 和 WebSockets 中的消息使用 MessageEvent
接口来处理它们的 message
事件: [WEBSOCKETS]
[Exposed =(Window ,Worker ,AudioWorklet )]
interface MessageEvent : Event {
constructor (DOMString type , optional MessageEventInit eventInitDict = {});
readonly attribute any data ;
readonly attribute USVString origin ;
readonly attribute DOMString lastEventId ;
readonly attribute MessageEventSource ? source ;
readonly attribute FrozenArray <MessagePort > ports ;
undefined initMessageEvent (DOMString type , optional boolean bubbles = false , optional boolean cancelable = false , optional any data = null , optional USVString origin = "", optional DOMString lastEventId = "", optional MessageEventSource ? source = null , optional sequence <MessagePort > ports = []);
};
dictionary MessageEventInit : EventInit {
any data = null ;
USVString origin = "";
DOMString lastEventId = "";
MessageEventSource ? source = null ;
sequence <MessagePort > ports = [];
};
typedef (WindowProxy or MessagePort or ServiceWorker ) MessageEventSource ;
event.data
所有当前引擎均支持。
返回消息的数据。
event.origin
所有当前引擎均支持。
event.lastEventId
所有当前引擎均支持。
对于 服务器发送事件,返回 最后一个事件 ID 字符串。
event.source
所有当前引擎均支持。
对于 跨文档消息传递,返回源窗口的 WindowProxy
;在 SharedWorkerGlobalScope
对象触发的 connect
事件中,返回附加的 MessagePort
。
event.ports
所有当前引擎均支持。
对于 跨文档消息传递 和 通道消息传递,返回与消息一起发送的 MessagePort
数组。
data
属性必须返回其初始化的值。它表示正在发送的消息。
origin
属性必须返回其初始化的值。在 服务器发送事件 和 跨文档消息传递 中,它表示发送消息的文档的 来源(通常是文档的方案、主机名和端口,但不包括其路径或 片段)。
lastEventId
属性必须返回其初始化的值。在 服务器发送事件 中,它表示事件源的 最后一个事件 ID 字符串。
source
属性必须返回其初始化的值。在 跨文档消息传递 中,它表示消息来源的 Window
对象的 浏览上下文 的 WindowProxy
;在 共享工作线程 使用的 connect
事件中,它表示新连接的 MessagePort
。
ports
属性必须返回其初始化的值。在 跨文档消息传递 和 通道消息传递 中,它表示正在发送的 MessagePort
数组。
initMessageEvent(type, bubbles, cancelable, data, origin, lastEventId, source, ports)
方法必须以类似于同名 initEvent()
方法的方式初始化事件。 [DOM]
各种 API(例如,WebSocket
、EventSource
)在其 message
事件中使用 MessageEvent
接口,而无需使用 MessagePort
API。