Защита значения переменной..
Добрый день!
У меня вопрос, как можно "защитить" значение переменной? Суть: есть таймер, в который передается значение с помощью php.. Это значение используется в методе таймера.. Но банальный: javascript: param = n; где n-временное значение. Отбрасывают таймер на необходимое значение.. Как "защитить" эту переменную от такого шага? (переприсваивание в теле тоже не выход.. так как и те "переприсвоенные" можно поменять..) OnChange вешать тоже на мой взгляд бессмысленно, ведь переменная таймера всегда меняется.. |
gJam,
код таймера в студию |
function processTimer(){
if (limit > 0) {
setTimeout("processTimer()",1000);
limit--;
} else {
timer_hour = '00'
timer_min = '00'
timer_sec = '00'
/*document.testCheck.submit();*/
}
var timer_hour = parseInt(limit/3600);
var temp_min = limit - timer_hour*3600;
var timer_min = parseInt(temp_min/60);
var timer_sec = temp_min - timer_min*60;
if (timer_hour < 10) timer_hour = '0'+timer_hour;
if (timer_min < 10) timer_min = '0'+timer_min;
if (timer_sec < 10) timer_sec = '0'+timer_sec;
// вывод времени
document.getElementById('hour_timer').innerHTML=timer_hour;
document.getElementById('minute_timer').innerHTML=timer_min;
document.getElementById('second_timer').innerHTML=timer_sec;
}
Limit получает значение "снаружи", при генерации страницы.. т.е. <script type='text/javascript'>Var limit = (предположим) 500;</script> <script type='text/javascript' src='путь до файла с методом'></script> |
gJam,
Какую переменную защищаем ? |
которая является носителем времени, т.e. limit
|
Дзен-трансгуманист,
Но и таймер перестаёт работать.. После функции таймера еще есть:
processTimer;
var saveOnLoad = window.onload;
window.onload = function(){
saveOnLoad();
processTimer();
}
Вызов функции и помещение в onload с сохранением предыдущих функций т.е. похоже ошибка в работе связана с обращение к processTimer |
Цитата:
|
Цитата:
|
Большое спасибо всем участникам обсуждения!
|
gJam,
<script type="text/javascript">
var limit = 10
var DecrTimer = (function( limit ){
var Lm2 = limit+1;
return LIM=function () {
Lm2--;
return Lm2;
}
})(limit)
alert(LIM())
alert(LIM())
alert(LIM())
</script>
Внутри функции processTimer() пользуетесь не limit - а такой конструкцией Tim=LIM() |
может пригодится , была похожая тема на другом форуме и я написал такой скрипт
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<div id='timer'></div>
<a href='#' id='link'>start</a>
<script>
function countdown (opt) {
var sec = opt.time;
var button = document.getElementById(opt.button);
var elem = document.getElementById(opt.innerID);
button.onclick = function () {
button.onclick = function () {return false;};
timer_on();
return false;
}
function timer_on () {
elem.innerHTML = sec;
var id_inte = setInterval(function () {
if (sec == 0) {
clearInterval (id_inte);
opt.end_function();
return;
}
sec--;
elem.innerHTML = sec;
},1000);
}
}
countdown({
innerID: 'timer', //id элемента в котором будет отсчет
button: 'link',//id кнопки запуска
time: 10, // время отсчета (в секундах)
end_function: timer_end // функция котороая будет вызвана после окончания отсчета
});
function timer_end () {
alert('конец')
}
</script>
</body>
</html>
тут в живую http://learn.javascript.ru/play/cZt6oc |
| Часовой пояс GMT +3, время: 20:15. |