不点击确认或取消按钮关闭JavaScript确认弹窗

3

可能重复:
JavaScript关闭警告框

可以通过以下方式打开确认框: confirm("确定?"); 它会打开一个带有两个按钮(确定和取消)的确认弹出窗口。 当单击其中任意一个按钮时,弹出窗口将关闭。我们如何在不点击按钮的情况下通过编程方式关闭弹出窗口呢?我们能否使用JavaScript触发关闭弹出窗口的事件?


1
你不能这样做,因为只要对话框打开,JS执行就会被阻止。你必须使用自己的对话框实现。 - Felix Kling
2
请参见https://dev59.com/BHRB5IYBdhLWcg3w7rmV...这也会影响到警告框,供参考。 - Peter Bratton
1
还有点重复:https://dev59.com/ZGPVa4cB1Zd3GeqP5GB6 - Felix Kling
是的,你说得对。你提供的链接与我所问的非常相似。 - Phi_1.618
我猜按下Esc键也不是一个选项吧? - user1193509
3个回答

3

简短回答:不行。

长话短说: alertconfirmprompt这三个DOM0窗口都是模态窗口。当使用其中一个输入方法时,浏览器(或浏览器窗口,具体取决于情况)会冻结,而且在JavaScript方面没有任何反应。

你唯一能做的是创建一个带有自己确认按钮的弹出DIV,并给你的弹出窗口回调方法,告诉它在确认、接受和取消后要做什么。

可以使用setTimeout在暂停后自动关闭窗口。


2
不行,因为该函数会阻塞浏览器。在它打开的期间,没有 JavaScript 代码会运行,甚至包括已安排的超时和其他事件处理程序也不会运行。
请参见 developer.mozilla.org 上的 window.confirm
如果您需要一个按照您想要的方式运行的示例,请参见 jQuery UI 库的 this example

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接