Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа скрипта не должна теряться при переходе на другую страинцу (https://javascript.ru/forum/misc/62311-rabota-skripta-ne-dolzhna-teryatsya-pri-perekhode-na-druguyu-straincu.html)

interregional 04.04.2016 13:18

Работа скрипта не должна теряться при переходе на другую страинцу
 
В общем есть такой код таймера
<body onLoad="getSecs()">
  <script language="javascript">
startdate = new Date();
clockStart = startdate.getTime();
function initStopwatch() {
  var thisTime = new Date();
  return (thisTime.getTime() - clockStart)/1000;
}
function getSecs() {
  var tSecs = Math.round(initStopwatch());
  var iSecs = tSecs % 60;
  var iMins = Math.round((tSecs-30)/60);
  var sSecs ="" + ((iSecs > 9) ? iSecs : "0" + iSecs);
  var sMins ="" + ((iMins > 9) ? iMins : "0" + iMins);
  document.getElementById("timer-counter").innerHTML = sMins+":"+sSecs;
  setTimeout('getSecs()', 1000);
}
</script>
Вы находитесь на сайте:
 <span id='timer-counter' style='color:black;font-size:20px;font-weight:bold;'></span>
</body>

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

fear111 04.04.2016 15:09

interregional,
Думаю, так проще. Сохранять секунды не вижу смысла, но если нужно, по примеру поймете как.
$(document).ready(function() {
  var tSecs = 0,
      tMins = localStorage.getItem("timer_mins") || 0;
  
  setInterval(function() {
    tSecs++;
    if (tSecs > 59) {
      tSecs = 0;
      tMins++;
      localStorage.setItem("timer_mins", tMins);
    }
    
    var sSecs = ((tSecs > 9) ? tSecs : "0" + tSecs),
        sMins = ((tMins > 9) ? tMins : "0" + tMins);    
    
    document.getElementById("timer-counter").innerHTML = sMins+":"+sSecs;
  }, 1000)
});

ruslan_mart 04.04.2016 18:17

Цитата:

Сообщение от fear111
 tMins = ((localStorage.getItem("timer_mins") == null) ? 0 : localStorage.getItem("timer_mins"));

tMins = localStorage.getItem("timer_mins") || 0;

;)

fear111 04.04.2016 20:08

Ruslan_xDD,
Спасибо, исправлю)


Часовой пояс GMT +3, время: 04:04.