4

使用该功能window.open()可以生成辅助窗口和选项卡。

如何在 JavaScript 中获取“父”页面的生成的辅助窗口和选项卡的列表?

编辑:我正在寻找一种方法来做到这一点,而无需在创建时跟踪我创建的窗口。

4

4 回答 4

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);
    }
}
于 2012-08-17T20:09:51.313 回答
1

我不知道是否有内置方法可以在 js 中返回子窗口和选项卡,但是您可以通过每次调用 window.open() 在数组中创建一个条目来创建一个数组来跟踪它们

于 2012-08-17T20:08:41.657 回答
1

认为不可能直接这样做,尽管您可以将窗口保存在数组中:

var wins = [];
function openWindow(win){
   newWin = window.open(win);
   wins.push(newWin);
}
于 2012-08-17T20:10:31.990 回答
0

这个怎么样:

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

windowArray将存储对所有打开的窗口或选项卡的引用。

于 2012-08-17T20:09:37.650 回答