我试过这个但失败了:
var win = showModalDialog('http://localhost/index.php');
win.close();
我试过这个但失败了:
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");