0

我在javascript中使用window.open打开多个窗口,弹出窗口打开同一个应用程序,现在我想在关闭任何打开的窗口时关闭多个窗口,我使用数组来存储窗口对象,问题是我仅在最后一个打开的窗口上获取更新的数组,而不是在之前打开的窗口上,所以当我关闭最后一个窗口时,它会关闭所有窗口,但是当我打开中间的任何窗口时,它不会关闭所有窗口,因为更新的数组页面上不存在。

有什么方法可以关闭所有窗口以获取前几页上的更新数组,我已经通过网络搜索但无法找到解决方案。

任何帮助将不胜感激

4

2 回答 2

0

如果您从同一页面打开多个窗口(比如说 master.html),那么您可以在 master.html 中维护数组对象,并通过链接的单击事件或在打开的每个窗口上不断更新数组对象$(document).ready() 子窗口的事件。您可以将子页面中 master.html 的数组对象引用为 Parent.arrWindow[Parent.mCounter++](假设 arrWindow 是数组对象,mCounter 是 master.html 中定义的计数器变量)。现在在任何子页面的关闭事件中,您可以引用相同的数组对象并关闭所有其他子窗口。希望我已经正确理解您的问题并解决了它。

您可以使用以下 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 回答