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

时间:2012-05-22 13:45:44

标签: javascript

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

setInterval("popalert", 5000)

popalert()只是弹出一个警告框,如果已经有一个尚未关闭的警告框,那么最好的方法是不要弹出一个警告框?

5 个答案:

答案 0 :(得分:3)

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

请勿使用setInterval,请使用setTimeout

警报发生后重置超时。

jsfiddle example

答案 1 :(得分:0)

无法检测标准的javascript警告框,因为它们非常简单。如果你继续产生它们,它们只会排队,而在现代浏览器中,它实际上可以让你选择在几个页面后禁止它们。

如果在任何时候不超过1个盒子对您很重要,我会考虑使用不同类型的通知系统。类似于jQuery UI Dialog

答案 2 :(得分:0)

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

var bOpen = false;
然后当它的加速设置为真时

如果在按下ok之后关闭,或者再将其设置为false。

当再次调用popalert时,它会检查bOpen var,如果是真的,它就不会打开一个新的弹出窗口。

我也会使用settimeout,所以你不会得到这种无限循环的东西阻止你的gui。

答案 3 :(得分:0)

您无法检测警报框是否已在此处。 您的导航器管理此警告框,因此如果其他人已在此处,则无法弹出。

答案 4 :(得分:0)

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