Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер обратного отсчёта (https://javascript.ru/forum/misc/30681-tajjmer-obratnogo-otschjota.html)

TaypeH 12.08.2012 08:40

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

Код:

<body OnLoad="refresh();">
<script language="JavaScript" type="text/javascript">
<!--
// выставляем секунды
var sec=00;
// выставляем минуты
var min=01;

function refresh()
{
sec--;
if(sec==-01){sec=59; min=min-1;}
else{min=min;}

if(sec<=9){sec="0" + sec;}
time=(min<=9 ? "0"+min : min) + ":" + sec;
if(document.getElementById){timer.innerHTML=time;}
inter=setTimeout("refresh()", 1000);
// действие, если таймер 00:00
if(min=='00' && sec=='00'){sec="00"; clearInterval(inter); window.location='http://www.;}
}
//-->
</script>
</body>

KupueIIIKo 12.08.2012 10:43

Если тебе нужно обновить страницу каждое определенное время. то meta тебе в помощь!
<META HTTP-EQUIV='Refresh' CONTENT='10; URL=index.php'>

TaypeH 12.08.2012 11:57

Спасибо за внимание, но мне нужно не это.
Надо чтобы после обновления страницы таймер начинал отсчет с того же места что и до обновления.

Deff 12.08.2012 12:20

TaypeH,
складывайте переменную перед переходом в window.name
При загрузке - первым делом проверяете её наличие
Пример
window.name='Привет'
alert(window.name)

vadim5june 12.08.2012 12:33

записывайте в localStorage по событию unload
<script>
alert(localStorage.tim);
window.onunload = function(e){
localStorage.tim=document.getElementById('i').value;
};
</script>
<body>
<input id=i value='text'>

при обновлении страницы запоминается последнее значение

Deff 12.08.2012 14:01

vadim5june,
C localStorage может быть баг при открытии новой вкладки с данного ресурса ?
(Типо исходил из window.name из этого

TaypeH 12.08.2012 20:43

Спасибо, буду пробовать)

TaypeH 12.08.2012 21:28

Ещё раз спасибо!
С задачей справился следующим образом:


<body OnLoad="refresh();">
<script language="JavaScript" type="text/javascript">

<!--
if(window.name=='00')
{
// выставляем секунды
var sec=00;
// выставляем минуты
var min=01;
}
if(window.name>'00')
{
// выставляем секунды
var sec=window.name;
// выставляем минуты
var min=00;
}
function refresh()
{
sec--;
if(sec==-01){sec=59; min=min-1;}
else{min=min;}

if(sec<=9){sec="0" + sec;}
time=(min<=9 ? "0"+min : min) + ":" + sec;
if(document.getElementById){timer.innerHTML=time;}
inter=setTimeout("refresh()", 1000);
window.name=sec;
// действие, если таймер 00:00
if(min=='00' && sec=='00'){sec="00"; clearInterval(inter); window.location='http://www.';}
}
//-->
</script>
</body>


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