这是一个debug日常。
先来看一下原生window对象-子窗口、子窗口调用父页面方法
项目在使用某插件时候(插件会通过window.open打开一个编辑器窗口,编辑完成之后保存并把数据返回给父窗口),原生代码没问题,只有在vue环境中的 IE浏览器下,子窗口给父窗口传值时会报错。
原因是js文件定义的全局方法 ieattachEventntko 并未成功挂载到父窗口,vue中把js文件中定义的对象通过
export default ntkoBrowser
抛出,然后引入到我们的父窗口用的vue组件里。
弯路就不说了,和项目组人员通读插件,找问题根源找了很久,症结还是在于最初在使用插件时,js引入方式不同。
我需要做得是把ieattachEventntko也放到全局对象里抛出,然后 直接显式挂载到父窗口的window上(vue组件),然后在子窗口通过window.opener就可以访问到父窗口的方法并执行。