2009-05-27 82 views
2

有沒有一種方法可以檢測何時在模態對話框中加載頁面?比如當你調用window.showModalDialog()時。在javascript中檢測模態對話框

一點背景:我試圖避開出現在模態對話框登錄頁面的表單驗證問題,隨後該網站的其他部分時,在用戶登錄

任何想法?

回答

6

對於window.open,您可以檢查您目前所在的頁面是否有父級。

function parentExists(){ 
    return (window.opener != null)? true : false; 
} 

當您的登錄頁面加載時調用此函數。如果它返回true,那麼你在一個彈出窗口(或模態)。然後你可以關閉頁面並重定向父頁面。

這對模態盒子來說有點棘手,因爲你沒有訪問開啓者的權限。首先,確保所有模式箱子被打開與此類似:

window.showModalDialog('test.htm', self, <optional options>); 

這將確保東西被傳遞到窗口的arguements。

現在添加您的登錄頁面上下面的代碼:

function parentExists() 
{ 
    var opener = window.dialogArguments; 
    return (opener == null)?false:true; 
} 

編輯:添加

+0

帖子顯然留在這裏是有原因的模態盒信息,所以這裏是我的2分錢小費...... 我也試圖確定一個頁面是否已被加載爲模式對話框(很像這裏展示的:http://help.dottoro.com/ljdlgxbu.php) 但我無法模仿該功能,所以也試圖檢查window.opener是否爲null,雖然這是有效的,但如果點擊一個鏈接將它指向你的鏈接,它也會返回true子頁面。所以對我來說,這並不能解決問題。 2cents結束。 – 2013-07-24 10:46:53