0

ドメインのすべての開いているウィンドウを取得する方法をJavaScriptで知りたいです。

私は次のことを知っています-

私がwind0を使用していて、3つのリンクがあり、onclickで次のコードを記述したとします-

var win1=window.open('page1','name1');//link1 onclick
var win2=window.open('page2','name2');//link2 onclick
var win3=window.open('page3','name3');//link3 onclick

上記のコードは、3つの異なるウィンドウを開きます。win1、win2、win3 objを使用して配列に保存し、後で使用することはできますが、wind0のページが更新され、配列のコンテンツが失われたとします。

そのドメインで開いているウィンドウの数を確認できません。

ドメインに対してすべてのウィンドウを開くにはどうすればよいですか?

ありがとう。

4

2 に答える 2

3

それらをローカルストレージに保存されている値にプッシュして、ページのアンロード時にポップオフできると思います。

于 2012-10-17T11:11:13.107 に答える
0

すべてのウィンドウからその配列への参照を保存できます。配列は親ウィンドウで作成されましたが、子で独自のスコープから参照でき、消えることはありません。

親:

var windowsOpen = [];
w1 = window.open(...);
windowsOpen.push(w1);
w1.windowsOpen = windowsOpen;
...

子供:

$(window).on("unload", function(){
  windowsOpen.filter(function(x){
    return x!=window;
  }
}

各ウィンドウが同じ配列を参照できる限り、ウィンドウ間で共有され、通信に使用できます。

于 2012-10-17T11:28:00.200 に答える