繁体   English   中英

如何关闭由showModalDialog打开的对话框?

[英]How to close dialog opened by showModalDialog?

我尝试了这个但是失败了:

var win = showModalDialog('http://localhost/index.php');
win.close();

模态窗口的定义是当前函数的执行停止,直到模态窗口关闭。 也就是说,对showModalDialog()的调用将一直阻塞,直到关闭显示的对话框。 因此,您的win.close()将在窗口已关闭(而不是您想要的) 调用。

您有两种选择:

  • 将对话框显示为非模式对话框,并在事件循环中等待,直到满足特定条件为止。 然后,从调用函数关闭窗口。

  • 模态对话框在适当的时间关闭。

当执行showModalDialog ,整个代码序列将被阻止。 您需要关闭模式窗口才能继续,但是到那时, win将为null :P

模态对话框表示直到对话框关闭,才执行下一个运算符。 这就是为什么您在下一行中放置的内容将永远无效的原因。

这就是模式对话框的目的-冻结当前窗口并从用户那里获得一些强制性输入。 如果您想立即关闭它,我怀疑您真的不需要模式对话框。

顺便说一句,showModalDialog的返回值是对话框返回代码,而不是窗口变量!

通常,模式对话框是从内部关闭的。 如果您不想等待用户输入,则index.php代码中必须有一些内容可以将其关闭。

如果要从模式对话框中关闭它,可以使用:

$(“。ui-dialog-titlebar-close”,parent.document).trigger(“ click”);

暂无
暂无

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

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