2012-10-17 52 views
0

我想知道一種方法在JavaScript中,我可以通過它獲得域的所有打開窗口。使用Javascript獲取爲域名打開的所有窗口

我知道下面的路 -

假如我是上wind0有我有三個環節和的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 

上面的代碼將打開三個不同的窗口。我可以使用win1,win2,win3 objs並將它們保存在一個數組中,然後使用它,但假設我的wind0頁面被刷新並且數組內容丟失。

現在我無法找出爲該域打開了多少個窗口。

我怎樣才能得到一個域的所有窗口打開?

謝謝。

回答

2

我敢打賭,你可以將它們推入存儲在本地存儲中的值,然後在卸載頁面時將其彈出。

+0

是的,這似乎是一個非常實用的方式來做到這一點.upvoted。 –

+0

本地存儲只存儲字符串。仍然有效的方法。 –

+0

@JanDvorak更新了我的答案。 –

0

您可以在所有窗口中存儲對該數組的引用。儘管陣列在父窗口創建的,它可以從自己範圍的兒童中引用而不會消失:

父:

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

孩子:

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

由於每個窗口可以引用相同的數組,它將在窗口之間共享,並且可以用於通信。