0

複数のウィンドウを開くためにjavascriptでwindow.openを使用しています。ポップアップは同じアプリケーションを開きます。開いているウィンドウを閉じるときに複数のウィンドウを閉じたいのですが、ウィンドウオブジェクトを格納するために配列を使用しています。問題は私です最後に開いたウィンドウでのみ更新された配列を取得し、以前に開いたウィンドウでは取得しないため、最後のウィンドウを閉じるとすべてのウィンドウが閉じますが、その間のウィンドウを開くとすべてのウィンドウが閉じられません。ページにはありません。

前のページで更新された配列を取得するすべてのウィンドウを閉じる方法はありますか?ネットで検索しましたが、解決策が見つかりません。

どんな助けでも大歓迎です

4

2 に答える 2

0

同じページ(たとえばmaster.html)から複数のウィンドウを開いている場合は、master.htmlで配列オブジェクトを維持し、リンクのクリックイベントまたは子ウィンドウの$(document).ready()イベント。子ページからmaster.htmlの配列オブジェクトをParent.arrWindow[Parent.mCounter++]として参照できます(arrWindowが配列オブジェクトであり、mCounterがmaster.htmlで定義されたカウンター変数であると想定しています)。これで、任意の子ページのcloseイベントで、同じ配列オブジェクトを参照し、他のすべての子ウィンドウを閉じることができます。私があなたの問題を正しく理解し、それに対処したことを願っています。

次のJavaScriptコードを参照として使用できます。

<script type="text/javascript">
    var abcd = "Hello";
    var myParent = null;

    function openWindow(){
        window.open("anypage.html");
    }

    $(document).ready( function () {
        myParent = window.opener;
        while(myParent != null || myParent != undefined) {
            alert(myParent.abcd);
            myParent = myParent.opener;
        }
    });
</script>

HTMLコード:

<input type="button" id="btnWindowOpener" value="Click Me" onclick="openWindow();">
于 2012-05-25T08:29:08.337 に答える
0

なぜこの機能が必要なのかはわかりませんが、アプリケーションが必要とするものに関係なく、複数のポップアップを開くことは適切な解決策ではないと思います. 問題を解決する別の方法を見つける必要があると思います。jQuery ダイアログプラグインを使用することをお勧めします。これにより、開いているすべてのダイアログを非常に簡単に閉じることができます。

于 2012-05-25T08:18:02.323 に答える