碰到个监听的坑,记录一下。

起因:

有新需求,加个页面,和frame1.html页面样式一致,于是复制粘贴frame1.html,起名为frame2.html。运行发现,frame1.html能监听到,frame2.html同样的代码却监听不到。

不应该啊?一个事件可以被监听n次啊
apicloud addEventListener监听不到?不!是没搞清原理

百度:

apicloud addEventListener监听不到?不!是没搞清原理
看到的原理是:监听是需要先addEventListener(),再sendEvent(),才能接收到
apicloud addEventListener监听不到?不!是没搞清原理

思考:

我的页面是先addEventListener(),再sendEvent()的呀:index.html打开了frameGroup:frame0到3四个页面,就是一下子将四个页面全部加载完了呀,
apicloud addEventListener监听不到?不!是没搞清原理
然而,是我想当然了,问题就出在这里,经过反复输出发现,index.js初始化打开frameGroup,并没有将所有页面全打开,而是默认打开了第一个。
openFrameGroup()中介绍到了一个参数:preload
apicloud addEventListener监听不到?不!是没搞清原理
这就说通了,为什么frame1.html的监听生效,而frame2.html的监听未生效,因为只加载了当前页面后的一个。

修改:

设置preload = 3,问题解决。frame2.html可以监听到了。
apicloud addEventListener监听不到?不!是没搞清原理

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2022-02-04
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案