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

时间:2009-11-25 09:24:17

标签: javascript showmodaldialog

我尝试了但失败了:

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

4 个答案:

答案 0 :(得分:5)

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

您有几个选择:

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

模态对话框表示在关闭对话框时未执行下一个操作符。这就是为什么你在下一行中所做的一切都无法发挥作用的原因。

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

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

通常,模态对话框从内部关闭。如果你不想等待用户的输入,index.php代码中必须有一些东西可以关闭它。

答案 3 :(得分:0)

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

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