[英]Custom alert box, wait for input (yes / no) until resume javascript
[英]How do you escape out of an alert box and resume flow of action? - Javascript
所以我正在編寫一個簡單的 javascript 計時器,並在 30 秒時提示用戶是否要重置倒計時或讓它繼續。 我可以重置計時器,但是當用戶單擊警報框上的取消時我會卡住。
我嘗試讓計時器在當前時間恢復,但這無濟於事,因為警報框只是不斷重新出現
我對 javascript 還是很陌生,所以我想繼續使用 vanilla js,直到我對基本原理有了更深入的了解!
任何指導將不勝感激!
這是我的代碼:
function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10); seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; display.textContent = minutes + ":" + seconds; if(timer<30){ var message = confirm("Would you like to extend timer?"); if (message == true) { timer = 60 * 1; } else{ timer = timer; } } if (--timer < 0) { timer = duration; } }, 1000); } function resetTimer() { timer = 60 * 1; } window.onload = function () { var fiveMinutes = 60 * 1, display = document.querySelector('#time'); startTimer(fiveMinutes, display); };
只需放置if(timer==30)
而不是if(timer<30)
以便恰好在 30 個單位的時間計數,您在該實例中被要求進行一次確認(但是請注意,在確認完成之前,提示將每秒都彈出)。 如果你延長它,它會再次等到你的計時器下降到 30 個單位,否則它只會下降到 0 並爆發。
function startTimer(duration, display) {
var timer = duration,
minutes,
seconds;
function timerFunc() {
timer -= 1;
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (timer == 30) {
var message = confirm("Would you like to extend timer?");
if (message == true) {
timer = 60;
} else return alert("Your timer has been stopped.")
}
setTimeout(timerFunc, 1000);
}
timerFunc();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.