列出辅助窗口

时间:2012-08-17 20:03:54

标签: javascript

使用函数window.open()可以生成辅助窗口和标签。

如何在JavaScript中获取“父”页面的衍生辅助窗口和标签的列表?

编辑 :我正在寻找一种方法来执行此操作,无需跟踪我创建时创建的窗口。< / p>

4 个答案:

答案 0 :(得分:4)

在javascript中无法做到这一点。你需要自己跟踪它们:

var windowArray = [];

// whenever you open a window...
var newWindow = window.open(...);
windowArray.push(newWindow);

// whenever you close a window...
if (opener && !opener.closed && opener.windowArray) {
    // search for your window in the array

    var matchingIndex = -1;

    for (var i = 0; i < opener.windowArray.length; i++) {
        if (opener.windowArray[i] === window) {
            matchingIndex = i;
            break;
        }
    }

    // if your window was found, remove it
    if (matchingIndex !== -1) {
       opener.windowArray.splice(matchingIndex, 1);
    }
}

答案 1 :(得分:1)

我不知道是否有一种内置的方式来返回js中的子窗口和制表符,但是你可以通过在每次调用window.open时在数组中创建一个条目来创建一个数组来跟踪它们。 )

答案 2 :(得分:1)

我不认为可以直接执行此操作,但您可以将窗口保存在数组中:

var wins = [];
function openWindow(win){
   newWin = window.open(win);
   wins.push(newWin);
}

答案 3 :(得分:0)

这个怎么样:

var windowArray = [];
windowArray.push(window.open(yourWindow));

windowArray将存储对所有已打开的窗口或标签的引用。