0

我有一个正在加载外部 HTML 页面的模式窗口。我试图弄清楚如何在内容加载后关闭此模式窗口。由于这是一个外部页面,我将无法更改此内容,所以我猜测我需要在父页面上放置一个事件侦听器,以检测模式窗口内容何时加载?

任何帮助将不胜感激。

4

4 回答 4

0

我假设您正在使用 Joomla 的核心模式功能。另一个假设是控制逻辑位于模态窗口内。这就是为什么答案不像它可能的那样直截了当,因为我不确定打开您希望在之后触发事件的外部 HTML 页面的工作流程。但是,在触发打开外部 HTML 页面的逻辑之后,您可以使用嵌入在模态窗口呈现的 HTML 中的以下 JavaScript 来关闭模态窗口:

window.parent.SqueezeBox.close();
于 2014-03-19T20:53:23.967 回答
0

您是否使用.load()加载外部 HTML 页面?如果是这样,您可以在函数中放置一个回调load()函数。像这样:

$('#someDiv').load(function(){
    //Put code to close the modal
});
于 2013-01-12T00:19:31.433 回答
0

JS:

要从模态调用父窗口中的方法:

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

要关闭模态窗口,请在加载内容后调用此函数(您可以使用它.load(callbackFn)来检查 load`):

window.close();
于 2013-01-12T00:20:32.370 回答
0

如果您要打开此模式页面,window.showModalDialog()则不能。正如它自己的名字所表明的那样,它打开了一个模式窗口。在您的主(打开器)页面中执行 javascript 将暂停,直到模式关闭(因为模式对话框可以返回值,所以调用者必须等待对话框关闭才能继续)。由于您打开的页面是一个外部页面(我假设在另一个域中),它关闭的唯一方法是用户关闭它。

如果这是不可接受的,那么您需要使用window.openjQuery UI 提供的 HTML 模态窗口。

于 2014-03-19T12:57:43.980 回答