Нужна помощь по доработке скрипта отсчета времени
Можно ли сделать так, чтобы счетчик считал только тогда, когда пользователь находится на странице (на активной вкладке браузера)?
Вот код: <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> |
tavrik83,
добавить переменную var a = true; в условие if(x<?php echo $randcounter; ?> > 0 && a == true)на запуск setTimeout а по window.onblur ставить в эту переменную a=false |
Здорово! Вот если бы еще в виде кода...
|
Вобщем попробывал сделать, только осталась одна проблема: при возврате на страницу счетчик не размораживается, т.е. не продолжает отсчитывать время. Где ошибка?
<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> |
Часовой пояс GMT +3, время: 17:40. |