在Javascript中处理子窗口和孙窗口

在Javascript中处理子窗口和孙窗口,javascript,jquery,window,Javascript,Jquery,Window,我的网页上有一个主窗口(#1),从中我打开一个新的浏览器窗口(#2),从中我打开一个新窗口(#3) 现在,如果我的用户在window#3之前关闭了window#2,我的问题是window#3无法再调用其window.opener中的函数,因为它已经消失了 我想做的是在window#2关闭时将window#3.opener设置为window#1 我已经尝试过在窗口2中执行此操作(通过使用jquery的方式): 加载窗口#3时,我将窗口添加到窗口#2中的数组子项中 但当window#2在window

我的网页上有一个主窗口(#1),从中我打开一个新的浏览器窗口(#2),从中我打开一个新窗口(#3)

现在,如果我的用户在window#3之前关闭了window#2,我的问题是window#3无法再调用其window.opener中的函数,因为它已经消失了

我想做的是在window#2关闭时将window#3.opener设置为window#1

我已经尝试过在窗口2中执行此操作(通过使用jquery的方式):

加载窗口#3时,我将窗口添加到窗口#2中的数组子项中

但当window#2在window#3之前关闭时,windows#3的window.opener不会指向window#1


如何确保我的孙子窗口(窗口3)在窗口2关闭后仍能调用主窗口(窗口1)?

这可能是相切的,但为什么需要打开3个单独的窗口?您可以改用jQuery对话框吗?当应用程序在我身上打开窗口时,我感到非常沮丧。

窗口。opener
可能是只读的。我会设置您自己的财产,以便在加载孙子时引用祖父母

function onLoad() {
  window.grandparent = window.opener.opener;
}

在第三个wndow中,您输入:

<script type="text/javascript">
  var grandMother = null;
  window.onload = function(){
    grandMother = window.opener.opener;
  }
</script>

当第三个窗口打开时,应创建对主窗口的引用:

parent = window.opener.opener

这将在第二个窗口关闭后仍然有效。

请避免只回答代码,并提供代码解释。
var main_window = get_main_window();
function get_main_window(){
    var w = window;
    while(w.opener !== null){
        w = w.opener;
    }
    return w;
}
parent = window.opener.opener
var main_window = get_main_window();
function get_main_window(){
    var w = window;
    while(w.opener !== null){
        w = w.opener;
    }
    return w;
}