Как я могу показать предупреждение на моем таймере, когда таймер закончил

1

Я использую таймер в JavaScript, я хочу, чтобы, когда мой таймер закончил, он покажет мне предупреждение, но сейчас мой таймер снова перезапускается с того же самого времени. как я могу показать оповещение в моем таймере, когда он закончит.

// properties
var count = 0;
var counter = null;

window.onload = function() {
  initCounter();
};

function initCounter() {
  // get count from localStorage, or set to initial value of 1000
  count = getLocalStorage('count') || 1000;
  counter = setInterval(timer, 1000); //1000 will  run it every 1 second
}

function setLocalStorage(key, val) {
  if (window.localStorage) {
    window.localStorage.setItem(key, val);
  }

  return val;
}

function getLocalStorage(key) {
  return window.localStorage ? window.localStorage.getItem(key) : '';
}

function timer() {
  count = setLocalStorage('count', count - 1);
  if (count == -1) {
    clearInterval(counter);
    return;
  }

  var seconds = count % 60;
  var minutes = Math.floor(count / 60);
  var hours = Math.floor(minutes / 60);
  minutes %= 60;


  document.getElementById("timer").innerHTML = seconds + "  seconds left to complete this transaction"; // watch for spelling
}
<div id="timer"></div>
  • 0
    Хм, когда это будет сделано, добавить оповещение? .... иначе строка clearInterval ....
  • 0
    для точного комментария epascarello, который может быть неопределенным для новичка: операция, которая представляет конец вашего таймера, - это одна clearInterval(counter); , «Возврат» чуть ниже завершает функцию. Поэтому, если у вас есть какие-либо действия, например, alert , лучшее место перед этим return;
Показать ещё 3 комментария
Теги:
timer

1 ответ

0

Проблема, с которой вы сталкиваетесь, связана с count. Вы задали значение 1000. Таким образом, вам придется подождать 1000 min до выполнения вашей функции clearInterval(timer). Вы можете попробовать следующее:

Таймер перезапускается после перезагрузки страницы

<script type="text/javascript">
  // properties
  var count = 0;
  var counter = null;

 window.onload = function() {
    initCounter();
  };

 function initCounter() {
    // get count from localStorage, or set to initial value of 1000
    count = 6000;
    counter = setInterval(timer, 1000); //1000 will  run it every 1 second
  }

 function timer() {
    count = count -1;

   var seconds = count % 60;
    var minutes = Math.floor(count / 60);
    var hours = Math.floor(minutes / 60);
    minutes %= 60;

   if(seconds === 0)
   	{
		clearInterval(counter);
                alert("terminated");
        }
   document.getElementById("timer").innerHTML =  seconds +  "  seconds left to complete this transaction"; // watch for spelling
  }
 </script>


 <div id="timer"></div>

Таймер остается неизменным даже после перезапуска

<script type="text/javascript">
  // properties
  var count = 0;
  var counter = null;

 window.onload = function() {
    initCounter();
  };

 function initCounter() {
    // get count from localStorage, or set to initial value of 1000
    if(!count || count < 0)
    {
        count = 1000;
    }
    counter = setInterval(timer, 1000); //1000 will  run it every 1 second
  }

 function setLocalStorage(key, val) {
    if (window.localStorage) {
      window.localStorage.setItem(key, val);
    }

   return val;
  }

 function getLocalStorage(key) {
    return window.localStorage ? window.localStorage.getItem(key) : '';
  }

 function timer() {
    count = setLocalStorage('count', count - 1);

   var seconds = count % 60;
    var minutes = Math.floor(count / 60);
    var hours = Math.floor(minutes / 60);
    minutes %= 60;

   if(seconds === 0)
    {
        clearInterval(counter);
        alert("terminated");
        }
   document.getElementById("timer").innerHTML =  seconds +  "  seconds left to complete this transaction"; // watch for spelling
  }
 </script>


 <div id="timer"></div>

Это не фрагмент, как первый, потому что localstorage отключен в фрагменте stackoverflow

  • 0
    На этот раз он показывает мне предупреждение, но показывает сообщение «осталось 0 секунд до завершения этой транзакции», мой таймер не запускается на этот раз. Его исправление на 0.
  • 0
    Да, я только что понял это. Позволь мне исправить это
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню