在JavaScript中,如果我有一個無限循環:如果警報已經存在,確保警報框不會彈出的最佳方法是什麼?
setInterval("popalert", 5000)
凡popalert()
簡單地彈出一個警告框,是什麼使它這樣一個警告框不會彈出,如果已經有一個單一的最佳方式警示框尚未關閉?
在JavaScript中,如果我有一個無限循環:如果警報已經存在,確保警報框不會彈出的最佳方法是什麼?
setInterval("popalert", 5000)
凡popalert()
簡單地彈出一個警告框,是什麼使它這樣一個警告框不會彈出,如果已經有一個單一的最佳方式警示框尚未關閉?
這是不可能的檢測標準JavaScript警告框,因爲它們是非常簡單的。如果你繼續產生它們,它們將會排隊,而在現代瀏覽器中,它實際上會讓你選擇在幾個頁面之後壓縮它們。
我會考慮使用不同類型的通知系統,如果在任何時候不超過1個盒子對您都很重要。像jQuery UI Dialog。
popalert函數可以保存警告框的狀態。
var bOpen = false;
那麼當其POP操作起來一套真的
,如果推OK什麼的設置假後再次關閉。
當popalert被再次調用時,它會檢查bOpen var,如果它的值爲true,它就不會打開一個新的彈出窗口。
我也會使用settimeout,所以你不會得到這個無限循環的東西阻止你的GUI。
您無法檢測警報框是否已在此處。 您的導航器管理此警報框,因此如果另一個已在此處,則無法彈出。
您可以使用全局JavaScript變量(超出任何函數)並將此var初始設置爲false。如果您的popalert函數被調用,請檢查全局變量是否爲false。如果是這樣,彈出您的警報,並將var設置爲true。這樣做只會顯示一條警報,但是您的功能將一次又一次地執行(如果這很重要)。
你能否提供一些你所描述的短片段?我不知道你將如何重置setTimeout或獲取它的參考。 – Rolando
@Teiviere增加了一個基本的例子。 – epascarello