我尝试了但失败了:
var win = showModalDialog('http://localhost/index.php');
win.close();
答案 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”);