繁体   English   中英

从父窗口关闭模式窗口

[英]Closing a modal window from parent window

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

任何帮助将不胜感激。

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

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

JS:

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

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

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

window.close();

如果要使用window.showModalDialog()打开此模式页面,则不能。 顾名思义,它会打开一个模式窗口。 您的主页面(打开程序)中的javascript执行将被暂停,直到模式关闭为止(因为模式对话框可以返回值,因此调用者必须等待对话框关闭才能继续)。 由于您要打开的页面是一个外部页面(我假设在另一个域中),因此关闭该页面的唯一方法是用户将其关闭。

如果不可接受,则需要使用window.open或jQuery UI提供的HTML模式窗口。

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

window.parent.SqueezeBox.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM