Javascript 如何在Vue.js中捕获子窗口的onclose(onbeforeunload)事件?

Javascript 如何在Vue.js中捕获子窗口的onclose(onbeforeunload)事件?,javascript,vue.js,Javascript,Vue.js,我尝试在Vue.js中创建一个函数,在Chrome中打开一个新窗口。我需要从打开窗口的Vue中的同一组件捕获窗口的onclose或onbeforeunload事件。我尝试以这种方式实施它: ... methods: { gitConnet(){ var child = window.open("https://www.google.it", '_blank', 'fullscreen=no,height=600,width=800,top=100,location

我尝试在Vue.js中创建一个函数,在Chrome中打开一个新窗口。我需要从打开窗口的Vue中的同一组件捕获窗口的onclose或onbeforeunload事件。我尝试以这种方式实施它:

...
methods: {
    gitConnet(){
            var child = window.open("https://www.google.it", '_blank', 'fullscreen=no,height=600,width=800,top=100,location=no,titlebar=0');

            child.onclose = function(){ console.log('Child window onclose closed'); };

            child.onbeforeunload = function(){ console.log('Child window onbeforeunload closed'); };
        }
}
...
使用此代码,我可以打开新窗口,但当我关闭窗口时,在控制台中看不到任何消息。我还尝试在组件的数据属性中插入子变量,但没有任何更改

请,有人可以帮助我捕获Vue组件内窗口的onclose事件


提前谢谢。

不幸的是,那样做不行

然而,像这样的事情可能会让你接近你想要的东西

...
methods: {
  gitConnet(){
    var child = window.open("https://www.google.it", '_blank', 'fullscreen=no,height=600,width=800,top=100,location=no,titlebar=0');

    var loop = setInterval(function() {   
      if(child.closed) {
        clearInterval(loop);
        alert('closed');

        // Do your thing here it has been closed.

      }
    }, 500);
  }
}


简化示例:

我对Vue的理解是,它使用虚拟DOM,而这可能不会出现在启动的新窗口中。在加载应用程序时,可以在同一页上考虑模态或子组件,然后检测何时关闭或卸载。