如果警报已经存在,确保警报框不会弹出的最佳方法是什么

What is best way to make sure alert box doesnt pop up if an alert is already there?

本文关键字:方法 是什么 最佳 存在 如果 确保      更新时间:2023-09-26

在javascript中,如果我有一个无限循环:

setInterval("popalert", 5000)

popalert()只是弹出一个警报框,如果已经有一个尚未关闭的警报框,那么使警报框不会弹出的最佳方法是什么?

无法检测到警报是否存在。

不要使用setInterval,使用setTimeout

警报发生后重置超时。

JSFIDDLE 示例

不可能

检测到标准的javascript警报框,因为它们非常简单。如果您继续生成它们,它们只会排队,在现代浏览器中,它实际上为您提供了在几个页面后抑制它们的选项。

如果任何时候不超过

1 个盒子对您很重要,我会考虑使用不同类型的通知系统。类似于jQuery UI Dialog的东西。

popalert函数可以保存警报框的状态。

var bOpen = false;

然后当它弹出时设置为真

如果它在按确定或某些东西后关闭,则再次将其设置为假。

当再次调用 popalert 时,它会检查 bOpen var,如果为 true,它只是不会打开新的弹出窗口。

我也会使用 settimeout,这样你就不会得到这个无休止的循环东西来阻止你的 GUI。

您无法检测到此处是否已存在警告框。您的导航器管理此警报框,因此如果另一个警告框已在此处,则无法弹出。

您可以使用全局 javascript 变量(来自任何函数(并将此变量最初设置为 false。如果调用了 popalert 函数,请检查全局变量是否为 false。如果是这样,请弹出警报并将变量设置为 true。这样做只会显示一个警报,但您的函数将一次又一次地执行(如果这很重要(。