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

一番上のウィンドウを呼び出したい場合は、これを呼び出すだけです

window.top.abc(); //abc() は一番上のウィンドウの関数です。

于 2013-07-24T10:31:22.457 に答える