mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-09 10:56:50 +08:00
- 优化 message-channel.js 实现父子页面间的通信机制 - 更新配置文件,添加杭州环境地址配置 - 更新依赖包配置,新增 markdown-it 和 markdown-it-katex 支持 - 实现基于 MessageChannel API 的跨域通信 - 添加布局控制功能,支持在 iframe 中隐藏/显示界面元素
43 lines
941 B
JavaScript
43 lines
941 B
JavaScript
// 保存端口引用
|
||
let port
|
||
|
||
/**
|
||
* 控制处理各种消息
|
||
* @type {Map <string, boolean>}
|
||
*/
|
||
const handle = new Map()
|
||
|
||
handle.set('layout', false)
|
||
/**
|
||
* 接收来自主页面的初始化消息
|
||
* @param e {MessageEvent}
|
||
*/
|
||
self.onmessage = function initHandler(e) {
|
||
const {ports = [], data} = e
|
||
// console.log(`Worker收到消息:`, data)
|
||
// 只处理初始化消息
|
||
if (data !== 'init-worker' || ports.length === 0) {
|
||
return
|
||
}
|
||
|
||
// console.log(`Worker初始化,接收到端口:`, ports[0])
|
||
self.port = ports[0]
|
||
|
||
self.port.onmessage = messageHandler
|
||
|
||
// 初始化完成后,可以移除主消息监听器,改为只监听端口消息
|
||
self.onmessage = null
|
||
}
|
||
|
||
/**
|
||
* 父节点事件配置
|
||
* @param event {MessageEvent}
|
||
*/
|
||
function messageHandler(event) {
|
||
// console.log('has been received event',event)
|
||
|
||
if (handle.has(event.data.type)){
|
||
self.port.postMessage(handle.get(event.data.type))
|
||
}
|
||
}
|