Показать сообщение отдельно
  #3 (permalink)  
Старый 05.06.2014, 11:09
Новичок на форуме
Отправить личное сообщение для DerGogunio Посмотреть профиль Найти все сообщения от DerGogunio
 
Регистрация: 03.06.2014
Сообщений: 4

Спасибо за отклик.

Исчезла проблема повторного запуска таймера при многочисленных кликах по ссылке. Благодарю за подсказку.

Но проблема сброса таймера при полном обновлении страницы (F5) осталась.
Попробовал добавить запрет повторного перехода по ссылке, но, если обновить страницу, таймер становится в исходное положение.
Каким образом заставить таймер считать указанное время даже если страница полностью обновлена?

Вот код с запретом на повторный переход по ссылке:
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  </head>
  <body>
<div id="title">Start</div>
<a id="waiting" href="http://ya.ru/" target="_blank" onclick="eHide(15, true);" load="1">Click</a>

<script>
function eHide(sec, checkLocalStorage) {
  if (checkLocalStorage && localStorage.getItem('eHideSec')) {
    var savedSec = localStorage.getItem('eHideSec');
    if (savedSec > 0) sec = savedSec;
  }
  var time = sec;
  var hour = parseInt(time / 3600);
  if (hour < 1) hour = 0;
  time = parseInt(time - hour * 3600);
  if (hour < 10) hour = '0' + hour;
  var minutes = parseInt(time / 60);
  if (minutes < 1) minutes = 0;
  time = parseInt(time - minutes * 60);
  if (minutes < 10) minutes = '0' + minutes;
  var seconds = time;
  if (seconds < 10) seconds = '0' + seconds;

  document.getElementById("title").innerHTML = 'Wait ' + hour + ':' + minutes + ':' + seconds;
  localStorage.setItem('eHideSec', sec);
  sec--;

  if (sec >= 0) {
    window.setTimeout(function () {
      eHide(sec);
    }, 1000);
    enabled = false;
  } else {
    document.getElementById("title").innerHTML = 'The End!';
  }
}
  $("#waiting").on("click", function() {
    if($(this).attr("load") == 1) {        
       $(this).attr("load", "0");
    }
    else {
        return false;
    }
});
</script>

  </body>
</html>
Ответить с цитированием