Quasar BEX 没有捕获 bridge.on('event') 内部从 dom-hooks 发出的背景钩子
Quasar BEX doesn't catch bridge.on('event') inside background-hooks emitted from dom-hooks
在 official Quasar documentation 之后,我在 dom-hooks.js:
中发出我的事件
export default function attachDomHooks (bridge) {
const clickHandler = (event) => {
bridge.send('message.to.quasar', { target: event.target })
}
window.addEventListener('click', clickHandler, true)
}
然后我在后台抓到失败-hooks.js:
export default function attachBackgroundHooks (bridge) {
bridge.on('message.to.quasar', event => {
console.log('message.to.quasar', event.data)
bridge.send(event.eventResponseKey)
})
}
基本上,我需要将一些数据放入背景挂钩中的 chrome.storage
,但从 dom-挂钩触发此操作。我做错了什么?
您需要使用 content-hooks.js 文件作为代理将事件转发到后台脚本。 dom 无法访问后台脚本 - 这是设计使然。
举个例子(未经测试):
dom-挂钩:
export default function attachDomHooks (bridge) {
bridge.send('message.to.quasar', { from: 'dom-hooks' })
}
内容挂钩:
export default function attachContentHooks (bridge) {
bridge.on('message.to.quasar', event => {
bridge.send('message.to.quasar.bg', event.data)
})
}
背景挂钩:
export default function attachBackgroundHooks (bridge) {
bridge.on('message.to.quasar.bg', event => {
console.log(event)
})
}
在 official Quasar documentation 之后,我在 dom-hooks.js:
中发出我的事件export default function attachDomHooks (bridge) {
const clickHandler = (event) => {
bridge.send('message.to.quasar', { target: event.target })
}
window.addEventListener('click', clickHandler, true)
}
然后我在后台抓到失败-hooks.js:
export default function attachBackgroundHooks (bridge) {
bridge.on('message.to.quasar', event => {
console.log('message.to.quasar', event.data)
bridge.send(event.eventResponseKey)
})
}
基本上,我需要将一些数据放入背景挂钩中的 chrome.storage
,但从 dom-挂钩触发此操作。我做错了什么?
您需要使用 content-hooks.js 文件作为代理将事件转发到后台脚本。 dom 无法访问后台脚本 - 这是设计使然。
举个例子(未经测试):
dom-挂钩:
export default function attachDomHooks (bridge) {
bridge.send('message.to.quasar', { from: 'dom-hooks' })
}
内容挂钩:
export default function attachContentHooks (bridge) {
bridge.on('message.to.quasar', event => {
bridge.send('message.to.quasar.bg', event.data)
})
}
背景挂钩:
export default function attachBackgroundHooks (bridge) {
bridge.on('message.to.quasar.bg', event => {
console.log(event)
})
}