冲浪后丢失参考创建窗口

时间:2019-11-01 16:19:07

标签: javascript jquery

我已经通过点击win创建了一个新的浏览器窗口#new-window-id。我有带有该窗口的事件系统。例如,关闭win.closed。一切正常,直到我转到创建的窗口内的链接。

 $('#new-window-id').on('click', function(){

                var finalUrl = $(this).attr('href');
                var win = window.open(
                    finalUrl,
                    'fullWindowMode');

                console.log('created '+ win.name);
                var timer = setInterval(function() {

                    if(win.closed) {
                        console.log('closed '+ finalUrl);
                        clearInterval(timer);

                        document.getElementById('#iframeID').contentWindow.location.reload();
                    }


                }, 1000);

            });

所以我的主页上有iframe。我想在新窗口中打开它并在那里编辑内容。然后,在关闭创建的窗口后,应该更新我的主页iframe。

  

步骤:

     
      
  1. 单击链接#new-window-id / //打开窗口。
  2.   
  3. 关闭窗口。 win.closed正在工作!
  4.   

什么时候不起作用

  

步骤:

     
      
  1. 单击链接#new-window-id / //打开窗口。
  2.   
  3. 在窗口中编辑博客文章。 (网址已更改)
  4.   
  5. 关闭窗口。事件win.closed无效!
  6.   

但是如果我在创建的窗口中浏览,它就会中断。存在保持这种连接的方法吗?

1 个答案:

答案 0 :(得分:1)

我做了以下事情: 1.创建了一个窗口let w = window.open('http://ya.ru') 2.在该窗口中导航(在同一站点内) 3.在主窗口(w.closed中选中false 4.然后关闭弹出窗口,然后再次检查(true)。

看起来w.closed甚至在导航后仍然有效。

但是,如果您在新窗口中导航到另一个原点,那么location.reload()将无法从主窗口访问。