0

那里。假设我不知道 window.showModalDialog 会打开多少子窗口。如果孩子和父母之间只有1个深度,那么使用javascript调用父母的函数会很容易。但是我必须打开一个子窗口,然后从那个子窗口到另一个子窗口,然后再打开一个。我说不出有多少深度。现在,从最后一个子窗口,我如何调用根父级的函数?有人有什么想法吗?

“根父窗口”->子窗口->子窗口->子窗口........第n个子窗口

4

2 回答 2

1

我想我们在这里谈论递归。如果我们知道必须从根窗口调用的函数名,那么我们可以执行以下操作:

<script type="text/javascript">
    function callRootFunction(wnd,funcName){
        if(wnd.opener)
            callRootFunction(wnd.opener,funcName);
        else
            wnd[funcName].call(this);
    }
</script>

此脚本必须在子窗口中,并且可以从任何您可以调用的窗口中

callRootFunction(window,'theRootFunction');
于 2013-01-24T06:31:02.723 回答
0

如果你想调用最顶层的窗口,你可以调用它

窗口.top.abc(); //abc() 是最顶层窗口中的函数。

于 2013-07-24T10:31:22.457 回答