我有一个加载外部HTML页面的模态窗口。我试图弄清楚如何在加载内容后关闭此模态窗口。由于这是一个外部页面,我将无法更改此内容,所以我猜我需要在父页面上放置一个事件监听器,它可以检测何时加载了模态窗口内容?
非常感谢任何帮助。
答案 0 :(得分:0)
您是否使用.load()
加载外部HTML页面?如果是这样,您可以在load()
函数中添加回调函数。像这样:
$('#someDiv').load(function(){
//Put code to close the modal
});
答案 1 :(得分:0)
JS:
从模态中调用父窗口中的方法:
window.opener.document.globalMethodInOpeningFile(param1, param2);
要关闭模态窗口,请在加载内容后调用此方法(您可以使用.load(callbackFn)
检查加载情况):
window.close();
答案 2 :(得分:0)
如果您使用window.showModalDialog()
打开此模态页面,则无法进行操作。正如其自己的名称所示,它会打开一个模态窗口。在主(开启)页面中执行javascript将暂停,直到模态关闭(因为模态对话框可以返回值,因此调用者必须等待对话框关闭才能继续)。由于您打开的页面是外部页面(我假设在另一个域中),它关闭的唯一方法是用户关闭它。
如果这是不可接受的,那么您需要使用window.open
或HTML模式窗口,就像jQuery UI提供的那样。
答案 3 :(得分:0)
我假设你正在使用Joomla的核心模态功能。另一个假设是控制逻辑位于模态窗口内。这就是为什么答案不尽可能直截了当的原因,因为我不确定打开外部HTML页面的工作流程,您希望在之后触发事件。但是,在打开外部HTML页面的逻辑被触发后,您可以使用嵌入在模态窗口的呈现HTML中的以下JavaScript来关闭模式窗口:
window.parent.SqueezeBox.close();