碰到个监听的坑,记录一下。
起因:
有新需求,加个页面,和frame1.html页面样式一致,于是复制粘贴frame1.html,起名为frame2.html。运行发现,frame1.html能监听到,frame2.html同样的代码却监听不到。
不应该啊?一个事件可以被监听n次啊
百度:
看到的原理是:监听是需要先addEventListener(),再sendEvent(),才能接收到
思考:
我的页面是先addEventListener(),再sendEvent()的呀:index.html打开了frameGroup:frame0到3四个页面,就是一下子将四个页面全部加载完了呀,
然而,是我想当然了,问题就出在这里,经过反复输出发现,index.js初始化打开frameGroup,并没有将所有页面全打开,而是默认打开了第一个。
openFrameGroup()中介绍到了一个参数:preload
这就说通了,为什么frame1.html的监听生效,而frame2.html的监听未生效,因为只加载了当前页面后的一个。
修改:
设置preload = 3,问题解决。frame2.html可以监听到了。