0

我试过这个但失败了:

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

4 回答 4

5

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

你有几个选择:

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

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

于 2009-11-25T09:31:09.150 回答
1

当你执行showModalDialog时,整个代码序列被阻塞。您需要关闭模态窗口才能继续,但是winnull那时:P

于 2009-11-25T09:30:13.660 回答
0

模态对话框意味着在对话框关闭之前不执行下一个运算符。这就是为什么您在下一行中放置的任何内容都不会起作用的原因。

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

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

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

于 2009-11-25T09:36:28.583 回答
0

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

$(".ui-dialog-titlebar-close", parent.document).trigger("click");

于 2017-03-03T08:44:21.767 回答