mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-09 19:06:49 +08:00
feat(iframe): 实现知识库应用的 iframe 通信功能
- 优化 message-channel.js 实现父子页面间的通信机制 - 更新配置文件,添加杭州环境地址配置 - 更新依赖包配置,新增 markdown-it 和 markdown-it-katex 支持 - 实现基于 MessageChannel API 的跨域通信 - 添加布局控制功能,支持在 iframe 中隐藏/显示界面元素
This commit is contained in:
@@ -1,29 +1,42 @@
|
|||||||
// 保存端口引用
|
// 保存端口引用
|
||||||
let port
|
let port
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 控制处理各种消息
|
||||||
|
* @type {Map <string, boolean>}
|
||||||
|
*/
|
||||||
|
const handle = new Map()
|
||||||
|
|
||||||
|
handle.set('layout', false)
|
||||||
/**
|
/**
|
||||||
* 接收来自主页面的初始化消息
|
* 接收来自主页面的初始化消息
|
||||||
* @param e {MessageEvent}
|
* @param e {MessageEvent}
|
||||||
*/
|
*/
|
||||||
self.onmessage = function initHandler(e) {
|
self.onmessage = function initHandler(e) {
|
||||||
const { ports = [], data } = e
|
const {ports = [], data} = e
|
||||||
|
// console.log(`Worker收到消息:`, data)
|
||||||
console.log(`Worker收到消息:`, data)
|
|
||||||
|
|
||||||
// 只处理初始化消息
|
// 只处理初始化消息
|
||||||
if (data !== 'init-worker' || ports.length === 0) {
|
if (data !== 'init-worker' || ports.length === 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Worker初始化,接收到端口:`, ports[0])
|
// console.log(`Worker初始化,接收到端口:`, ports[0])
|
||||||
port = ports[0]
|
self.port = ports[0]
|
||||||
|
|
||||||
// 设置定时器发送消息
|
self.port.onmessage = messageHandler
|
||||||
setTimeout(() => {
|
|
||||||
console.log(`定时器触发,开始发送消息`)
|
|
||||||
port.postMessage('init-worker-success')
|
|
||||||
}, 4000)
|
|
||||||
|
|
||||||
// 初始化完成后,可以移除主消息监听器,改为只监听端口消息
|
// 初始化完成后,可以移除主消息监听器,改为只监听端口消息
|
||||||
self.onmessage = null
|
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))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
let envInfo = process.env
|
let envInfo = process.env
|
||||||
let [admin, jifen, zixi] = [
|
let [admin, jifen, zixi, hz] = [
|
||||||
envInfo.VUE_APP_ADMIN,
|
envInfo.VUE_APP_ADMIN,
|
||||||
'http://192.168.2.62:7196/',
|
'http://192.168.2.62:7196/',
|
||||||
'http://192.168.8.165:7196/'
|
'http://192.168.8.165:7196/',
|
||||||
|
'http://10.147.17.161:7196/'
|
||||||
]
|
]
|
||||||
//let [admin, jifen, zixi] = ['/api', 'http://192.168.2.62:7196/', '/jifen']
|
//let [admin, jifen, zixi] = ['/api', 'http://192.168.2.62:7196/', '/jifen']
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
admin,
|
admin,
|
||||||
jifen,
|
jifen,
|
||||||
zixi
|
zixi,
|
||||||
|
hz
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user