2013-01-12 252 views
0

我有一個模式窗口正在加載一個外部HTML頁面。我想知道如何在內容加載後關閉這個模式窗口。由於這是一個外部頁面,我不能改變這個內容,所以我猜測我需要在父頁面上放置一個事件監聽器,它可以檢測何時加載了模態窗口內容?從父窗口關閉模式窗口

任何幫助將不勝感激。

+3

你是如何加載外部模態窗口?任何現有的代碼,你可以分享? – sgeddes

回答

0

您是否使用​​加載外部HTML頁面?如果是這樣,您可以在load()函數中放置回調函數。就像這樣:

$('#someDiv').load(function(){ 
    //Put code to close the modal 
}); 
0

JS:

要調用從模式的父窗口的方法:

window.opener.document.globalMethodInOpeningFile(param1, param2); 

要關閉模態窗口,一旦內容被加載調用這個(你可以使用.load(callbackFn)檢查是否有負載):

window.close(); 
0

如果要使用0123打開此模態頁面然後你不能。正如其名稱所示,它會打開一個模式窗口。在main(opener)頁面中執行javascript將被暫停,直到模式關閉(因爲模態對話框可以返回值,所以調用者必須等待對話框關閉才能繼續)。由於您打開的頁面是外部頁面(我假設在另一個域中),關閉它的唯一方法是用戶關閉它。

如果這是不可接受的,那麼你需要使用window.open或類似jQuery UI提供的HTML模式窗口。

0

我假設你正在使用Joomla的核心模式功能。另一個假設是控制邏輯位於模態窗口內部。這就是爲什麼答案不是那麼直截了當,因爲我不確定打開您希望在事件後觸發事件的外部HTML頁面的工作流程。然而,這將打開外部HTML頁面的邏輯已經解僱後,您可以使用嵌入的模式窗口的渲染HTML裏面下面的JavaScript關閉模式窗口:

window.parent.SqueezeBox.close();