Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从父窗口关闭模式窗口_Javascript_Jquery_Iframe_Joomla_Modal Dialog - Fatal编程技术网

Javascript 从父窗口关闭模式窗口

Javascript 从父窗口关闭模式窗口,javascript,jquery,iframe,joomla,modal-dialog,Javascript,Jquery,Iframe,Joomla,Modal Dialog,我有一个模式窗口,它正在加载一个外部HTML页面。我试图弄清楚如何在加载内容后关闭此模式窗口。由于这是一个外部页面,我将无法更改此内容,因此我猜我需要在父页面上放置一个事件侦听器,该侦听器可以检测何时加载了模式窗口内容 非常感谢您的帮助。您是否正在使用.load()加载外部HTML页面?如果是这样,您可以将回调函数放入load()函数中。像这样: $('#someDiv').load(function(){ //Put code to close the modal }); JS: 要

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

非常感谢您的帮助。

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

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

要从模式调用父窗口中的方法,请执行以下操作:

window.opener.document.globalMethodInOpeningFile(param1, param2);
若要关闭模式窗口,请在加载内容后调用此选项(您可以使用
.load(callbackFn)
检查是否加载“”):


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


如果这是不可接受的,那么您需要使用
窗口。打开
或类似jQuery UI提供的HTML模式窗口。

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

window.parent.SqueezeBox.close();

如何加载外部模式窗口?您可以共享任何现有代码吗?
window.parent.SqueezeBox.close();