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

Javascript 如果警报已经存在,确保警报框不会弹出的最佳方法是什么?,javascript,Javascript,在javascript中,如果我有一个无限循环: setInterval("popalert", 5000) 如果popalert()只是弹出一个警报框,那么最好的方法是如何使警报框在已有一个警报框尚未关闭时不会弹出?无法检测警报是否存在 不要使用setInterval,使用setTimeout 在警报发生后重置超时 无法检测警报是否存在 不要使用setInterval,使用setTimeout 在警报发生后重置超时 由于标准javascript警报框极其简单,因此无法检测它们。如果您继续生成

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

setInterval("popalert", 5000)

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

无法检测警报是否存在

不要使用
setInterval
,使用
setTimeout

在警报发生后重置超时


无法检测警报是否存在

不要使用
setInterval
,使用
setTimeout

在警报发生后重置超时


由于标准javascript警报框极其简单,因此无法检测它们。如果您继续生成它们,它们将只是排队,在现代浏览器中,它实际上为您提供了一个选项,可以在几天后在某个页面上抑制它们


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

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


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

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

var bOpen = false;
然后当它弹出时,设置为真

如果在按下ok或其他按钮后关闭,则再次将其设置为false

再次调用popalert时,它会检查bOpen变量,如果为true,则不会打开新的弹出窗口


此外,我还将使用settimeout,这样您就不会因为无休止的循环而阻塞gui。

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

var bOpen = false;
然后当它弹出时,设置为真

如果在按下ok或其他按钮后关闭,则再次将其设置为false

再次调用popalert时,它会检查bOpen变量,如果为true,则不会打开新的弹出窗口


此外,我还将使用settimeout,这样您就不会因为这个无休止的循环而阻塞gui。

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

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

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

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

您能否提供一些您描述的简短片段?我不知道如何重置setTimeout或获取对它的引用。@Teiviere添加了一个基本示例。您能提供一些您描述的简短片段吗?我不确定如何重置setTimeout或获取对它的引用。@Teiviere添加了一个基本示例。