ExtendableMessageEvent: source 属性
注意: 此功能仅在 Service Workers 中可用。
source
是 ExtendableMessageEvent
接口的只读属性,它返回发送消息的 Client
对象的引用。
值
一个 Client
、ServiceWorker
或 MessagePort
对象。
示例
当以下代码在服务工作者中用于通过 通道消息 将通过 PushMessageData
收到的数据发送到主上下文以响应推送消息时,onmessage
的事件对象将是 ExtendableMessageEvent
。
js
let port;
self.addEventListener("push", (e) => {
const obj = e.data.json();
if (obj.action === "subscribe" || obj.action === "unsubscribe") {
port.postMessage(obj);
} else if (obj.action === "init" || obj.action === "chatMsg") {
port.postMessage(obj);
}
});
self.onmessage = (e) => {
console.log(e.source);
port = e.ports[0];
};
规范
规范 |
---|
Service Workers # extendablemessage-event-source |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。