2011-06-24 57 views
3

在我的應用程序,窗口打開POP1,POP1打開POP2和POP2打開POP3。我在pop3中。我怎麼知道有多少個窗口/彈出窗口中的jQuery或JavaScript POP3之前打開我們如何知道有多少彈出窗口?

+4

'window.opener.opener.opener ...'直到揭幕戰爲空或未定義 – levu

+0

@Richard J.羅斯三:有什麼關係?這是一個很好的問題。 –

+2

如果你有很多彈出窗口,我會避開你的網站。然而,+1問一個有趣的問題。 – Endophage

回答

0

我想通了。這對任何尋找答案的人都有幫助。在下面的代碼count將給出答案找到打開的窗口的號碼。

popup = this;count=0; 
if(window.top != popup.self) 
{ 
count=count+1; 
popup = popup.parent; 
} 
1

假設:

  • 您使用的話窗口/彈出窗口你的意思'modal dialogs'
  • 它們都具有相同的類僅用於模態。 (我將在我的例子中使用.ui-dialog
  • 這給當前打開的情態動詞的量,沒有多少人打開

var modalsCurrentlyOpen = $('.ui-dialog').length;

+0

我不會承擔窗口/彈出窗口==模態對話框,即'的window.open()'不承擔窗口打開是一個模態對話框。 – mrk

+0

他們確實標記它jQuery - 似乎合乎邏輯。此外,無論如何,使用'window.open()'是一個壞主意。這是一個可用性禁止。 –

+0

@Levi是的。我只使用ui-dialog。它如何區別莫代爾和多少。這個長度也會返回在該窗口中打開的模式,而不是他們的父窗口。謝謝。 – vishnu

0

您可以或許初始化計數器變量,然後添加一個到它隨時window.open運行。 但隨後 一)你需要時打開彈出窗口關閉發送vairable父窗口(大概是使用了隱藏字段的值),像這樣的卸載: opener.document.your_form.counter.value ++; b)如果用戶有彈出式窗口阻止程序,這是不會工作。

相關問題