2012-05-22 28 views

回答

3

無法檢測到警報存在。

請勿使用setInterval,請使用setTimeout

重置警報發生後的超時時間。

jsfiddle example

+0

你能否提供一些你所描述的短片段?我不知道你將如何重置setTimeout或獲取它的參考。 – Rolando

+0

@Teiviere增加了一個基本的例子。 – epascarello

0

這是不可能的檢測標準JavaScript警告框,因爲它們是非常簡單的。如果你繼續產生它們,它們將會排隊,而在現代瀏覽器中,它實際上會讓你選擇在幾個頁面之後壓縮它們。

我會考慮使用不同類型的通知系統,如果在任何時候不超過1個盒子對您都很重要。像jQuery UI Dialog

0

popalert函數可以保存警告框的狀態。

var bOpen = false; 

那麼當其POP操作起來一套真的

,如果推OK什麼的設置假後再次關閉。

當popalert被再次調用時,它會檢查bOpen var,如果它的值爲true,它就不會打開一個新的彈出窗口。

我也會使用settimeout,所以你不會得到這個無限循環的東西阻止你的GUI。

0

您無法檢測警報框是否已在此處。 您的導航器管理此警報框,因此如果另一個已在此處,則無法彈出。

0

您可以使用全局JavaScript變量(超出任何函數)並將此var初始設置爲false。如果您的popalert函數被調用,請檢查全局變量是否爲false。如果是這樣,彈出您的警報,並將var設置爲true。這樣做只會顯示一條警報,但是您的功能將一次又一次地執行(如果這很重要)。

相關問題