2011-01-24 51 views
0

一點點前我問this question關於如果一個孩子可以得到其父母的信息。但是現在我意識到我有一個屬於它自己的後續問題,而不是在評論中:Javascript能否發現是否有任何窗口打開?Javascript可以在任何窗口獲取信息嗎?

我有一個窗口A,可以從窗口B或窗口C中調用。但是,當我關閉A時,我只想在窗口C關閉時發生onUnload中的某些事情。現在,A 可能未被C打開,所以我不能依靠window.opener。有什麼方法可以找到有關任意窗口的信息嗎?我想過檢查window.opener.location,但這仍然要求C一直是開門人,這可能不是。所有窗戶的名字都是已知的,所以如果我可以通過這些窗戶進行搜索,我會變得金黃。

(至於爲什麼:A是聊天控制檯,B是主菜單,C是隊列監視器,當某人在隊列監視器中時,它們被標記爲可用於聊天,但實際上聊天,他們必須加載聊天控制檯才能這樣做。通常,當您關閉聊天控制檯時,onUnload會嘗試將您標記爲不可用,但如果隊列監視器仍處於打開狀態,則不希望這種情況發生。)

回答

0

能夠做到這一點的唯一方法是如果啓動子窗口的父窗口在整個過程中保持打開狀態。具有相似「血統」的Windows可以使用公共父代作爲中繼點。共同父母的代碼可能需要(或至少需要)來協助。

我想普通家長有可能爲每個孩子提供一個有其他孩子窗口引用的對象;我無法想象任何失敗的原因。當然,如果一個孩子是從主窗口的一個化身發起的,而另一個從另一個化身發射的話,這將無濟於事。在這種情況下,即使窗口共享一個域名,他們也無法找到對方。

無論如何,如果你有一個窗口的引用,.closed屬性會告訴你它是否關閉。

+0

Hrm,但如果共同父(B,主菜單)已關閉,那麼將無法做到這一點? – Andrew 2011-01-24 20:27:25

相關問題