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

ウィンドウを配列に保存することはできますが、直接行うことはできないと思います。

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

js に子ウィンドウとタブを返す組み込みの方法があるかどうかはわかりませんが、window.open() を呼び出すたびに配列にエントリを作成することで、それらを追跡するための配列を作成できます。

于 2012-08-17T20:08:41.657 に答える
0

これはどう:

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

windowArray開いているすべてのウィンドウまたはタブへの参照を保存します。

于 2012-08-17T20:09:37.650 に答える