2014-09-19 60 views
1

最頂層的父窗口,我使用的Web應用程序要找到子窗口

從我的主要應用,我打開子窗口C1再從C1打開另一個子窗口C2。如果我關閉了C1窗口,我無法找到最主要的應用程序。

其實我想重定向主要應用到不同的頁面,如果一個超鏈接被點擊的孩子window.This工作良好,直到我關閉C1這是C2

父母任何幫助是極大的讚賞

+0

你能分享一些代碼嗎? – JME 2014-09-19 14:37:49

+0

在我的web應用程序中,使用window.open打開彈出式窗口C1。另一個彈出窗口C2可以在C1上單擊超鏈接打開。每個彈出窗口都有父超鏈接,當用戶單擊它時,它將重定向主父窗口。下面是JavaScript來找到最重要的父窗口重定向。這很好。但是,如果我關閉C1窗口,它會引發錯誤。因爲C2找不到它的父窗口。 var win = window; var topWindow = null; (win = win.opener) { \t topWindow = win; } if(topWindow!='undefined'&& topWindow!= null) { topWindow.location.href ='url link'; } – Mey 2014-09-19 16:20:54

+0

你能解決這個問題嗎? – JME 2014-09-25 09:28:38

回答

0

@Mey,沒有看到你的代碼的好處,將很難確定你的問題是什麼。也就是說,window.top是對最頂層窗口的引用。它似乎受所有主流瀏覽器的支持(請參閱here)。

你絕對正確。這不適用於由window.open()創建的窗口。這個解決方案如何:開啓器窗口在打開的窗口上設置一個屬性,以便在打開後立即跟蹤最上面的窗口。這樣,如果任何中間窗口關閉,則打開的窗口已經具有對最上方窗口的引用。讓我告訴你我的意思。

從最上面的窗口:

var c1 = window.open(...); 
c1.window.topMost = window; 

從第一個彈出:c1

var c2 = window.open(...); 
c2.window.topMost = window.topMost; 

從第二彈出:c2

var c3 = window.open(...); 
c3.window.topMost = window.topMost; 

現在,假設您關閉c1c2,c3仍然可以參考window.topMost

+0

window.top會在使用框架時找到最頂層的瀏覽器。但是我使用彈出窗口,window.top不會找到主應用程序窗口。 – Mey 2014-09-19 16:00:15