Javascript关闭警报框

And*_*ley 33 javascript alert dialog dom-events

我希望能够在一定时间后或特定事件(即onkeypress)上使用javascript自动关闭警报框.根据我的研究,内置的alert()函数看起来不太可能.有没有办法覆盖它并控制它打开的对话框?

此外,我不希望覆盖显示隐藏的div作为警报.我需要一个实际的对话框.

Tra*_*er1 18

如前所述,你真的不能这样做.您可以使用UI框架在窗口内部执行模式对话框,或者您可以使用弹出窗口,其中脚本在超时后自动关闭...每个都有负面的方面.如果窗口最小化,浏览器内的模态窗口将不会创建任何通知,并且现代浏览器和弹出窗口阻止程序可能会阻止程序化(基于计时器)弹出窗口.


rog*_*ack 6

看起来您可以在某种程度上完成与Notification API 类似的操作.您无法控制它可见的时间长度(可能是某种操作系统偏好 - 除非您指定requireInteraction为true),并且它要求用户单击"允许通知"(不幸的是),但这里是:

如果你希望它在1s后关闭:

var notification = new Notification("Hi there!", {body: "some text"});
setTimeout(function() {notification.close()}, 1000);
Run Code Online (Sandbox Code Playgroud)

如果你想显示它比"默认"更长,你可以绑定到onclose回调并显示另一个重复通知我想,替换它.

参考:灵感来自这个答案,虽然这个答案在现代Chrome中不再适用,但Notification API可以.


For*_*ood 5

无法控制对话框,如果您可以控制对话框,则可以编写突出的javascript代码.(对于除调试之外的任何事情,使用警报不是一个好主意)

  • 用于调试也不好.使用Console.log insted.只是建议.. (15认同)
  • 现在......我承认我还时不时地这样做但是......真的吗?提醒调试?你是*提倡*那个? (12认同)
  • 我发现alert 和console.log 在不同情况下都很有帮助。但切勿在循环内使用“alert();”。使计算机崩溃的好方法:) (5认同)
  • `alert()`非常适合调试.上次我在iPad @ office上编写userjs时使用它.上帝保佑警报()!:) (3认同)