wujie icon indicating copy to clipboard operation
wujie copied to clipboard

子应用不能监听自定义合成事件

Open xso4ll opened this issue 10 months ago • 5 comments

描述bug 子应用引入的sdk内部派发了自定义合成事件,在window上监听不到; 但是子应用脱离无界环境独立运行时,合成事件能被监听到。 目前有什么办法可以解决这个问题吗?

如何复现

const customEvent = new CustomEvent('testEvent', {
    bubbles: true,
    composed: true,
    detail: {
      name: 'this is message'
    }
  })
window.dispatchEvent(customEvent);

// 在无界子应用内监听不到,但是独立运行时可以监听到
window.addEventListener('testEvent', function(event) {
    console.log(event)
  })

xso4ll avatar Apr 15 '24 03:04 xso4ll

试试使用真实的window: __WUJIE_RAW_WINDOW__;全局变量

dengBox avatar Apr 15 '24 06:04 dengBox

wujie是不是可以通过开放配置项或者给windowAddEventListenerHook插件传入appWindowAddEventListenerEvents,让用户可以根据自身业务情况灵活的把合成事件的监听挂载到iframe沙箱上?

xso4ll avatar Apr 15 '24 06:04 xso4ll

试试使用真实的window: __WUJIE_RAW_WINDOW__;全局变量

试过了,还是不行

xso4ll avatar Apr 15 '24 06:04 xso4ll

子应用的window监听事件是不是可以做成配置项呢?@yiludege 现在子应用window上可以监听的事件只有appWindowAddEventListenerEvents数组里的这些事件,不在内的事件都监听不到,合成事件也是一样的情况

xso4ll avatar Apr 24 '24 03:04 xso4ll

这个地方确实有问题,window上还有document的属性以及事件监听都可能需要开放给用户可以自定义

yiludege avatar Apr 24 '24 03:04 yiludege