Вход

Просмотр полной версии : Нужна помощь по доработке скрипта отсчета времени


tavrik83
27.02.2013, 17:45
Можно ли сделать так, чтобы счетчик считал только тогда, когда пользователь находится на странице (на активной вкладке браузера)?
Вот код:
<script language="Javascript">
x<?php echo $randcounter; ?>=<?php echo $downloadtimer; ?>;
function countdown()
{
if ((0 <= 100) || (0 > 0))
{
x<?php echo $randcounter; ?>--;
if(x<?php echo $randcounter; ?> == 0)
{
document.getElementById("dl").innerHTML = '<a href="<?php echo $scripturl . "download2.php?a=" . $filecrc . "&b=" . md5($foundfile[2].$_SERVER['REMOTE_ADDR']) ?>">Download</a>';
}
if(x<?php echo $randcounter; ?> > 0)
{
document.getElementById("dl").innerHTML = 'Please wait <b>'+x<?php echo $randcounter; ?>+'</b> seconds...';
setTimeout('countdown()',1000);
}
}
}
countdown();
</script>

рони
27.02.2013, 18:52
tavrik83,
добавить переменную var a = true; в условие if(x<?php echo $randcounter; ?> > 0 && a == true)на запуск setTimeout а по window.onblur ставить в эту переменную a=false

tavrik83
05.03.2013, 22:12
Здорово! Вот если бы еще в виде кода...

tavrik83
26.03.2013, 18:22
Вобщем попробывал сделать, только осталась одна проблема: при возврате на страницу счетчик не размораживается, т.е. не продолжает отсчитывать время. Где ошибка?
<script language="Javascript">
var a = true;
x<?php echo $randcounter; ?>=<?php echo $downloadtimer; ?>;
function countdown()
{
if ((0 <= 100) || (0 > 0))
{
x<?php echo $randcounter; ?>--;
if(x<?php echo $randcounter; ?> == 0)
{
document.getElementById("dl").innerHTML = '<a href="<?php echo $scripturl . "download2.php?a=" . $filecrc . "&b=" . md5($foundfile[2].$_SERVER['REMOTE_ADDR']) ?>">Download</a>';
}
if(x<?php echo $randcounter; ?> > 0 && a == true)
{
document.getElementById("dl").innerHTML = 'Please wait <b>'+x<?php echo $randcounter; ?>+'</b> seconds...';
setTimeout('countdown()',1000);
window.onblur = function(){a = false;}
window.onfocus = function(){a = true;}
}
}
}
countdown();
</script>