Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.02.2012, 19:39
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от denisich84
Можно же как то запомнить время когда был включен таймер? и отсчитывать от этого времени то время которое нам надо!
Частично можно, но так никто не делает.
Одно из возможных решений: мониторить события window.onunload, window.onoffline, window.onhashchange, window.onpagehide, window.onbeforeunload и сохранять периодически значение в куки, потом идентифицировать пользователя по сессии и IP, но после смены IP (для динамического адреса достаточно перезагрузки ПК) определить пользователя не получится. По крайней мере в тех случаях если не использовалось API браузера.

Сообщение от denisich84
там надо две строчки дописать все уже написано)))
Желаю удачи

Последний раз редактировалось monolithed, 10.02.2012 в 19:56.
Ответить с цитированием
  #12 (permalink)  
Старый 10.02.2012, 19:54
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

Сообщение от denisich84
пускай не умничает умник! будто я без него не знаю где справочники искать!
я бы тоже пришел к такому выводу, что ты либо не знаешь либо искал но не нашел, либо нуб, потому что если бы человек хотел чтобы за него написали скрипт тогда он бы попросил бы так "слушай,гуглить вломы, скажи какие команлы писать а, братюнь!"

суть в том что я 5 лет изучаю js, и я тратил на это время, мне бы не хотелось делиться своим трудом с незнакомцами просто так, ДАЖЕ за большое пожалуйста. Ты принял попытку, мыл кому надо тот поделится и поможет мне, ну так вот тебе человек и помог, спасибо должен говорить, он ссылку тебе нашел где почитать, или ты хотел чтобы он оттуда скопипастил текст сюда? Тогда бы тебе легче было? совсем обнаглел что ли? уже по ссылкам кликать вломы?! я думаю вряд ли тебе тут кто-то будет помогать еще после такого отношения. тут тебе не техподдержка javascript! тут люди которые общаются на форуме, и иногда от скуки заходят в этот раздел чтобы помогать новичкам понять непонятое ими из учебников. или помочь найти решение или ошибку.

Последний раз редактировалось Mахmахmахimus, 10.02.2012 в 19:59.
Ответить с цитированием
  #13 (permalink)  
Старый 10.02.2012, 20:04
Интересующийся
Отправить личное сообщение для denisich84 Посмотреть профиль Найти все сообщения от denisich84
 
Регистрация: 10.02.2012
Сообщений: 18

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

P.S. Если бы я пришел и написал: "напишите мне таймер такой то и такой мне в лом искать " другой разговор.

Последний раз редактировалось denisich84, 10.02.2012 в 20:08.
Ответить с цитированием
  #14 (permalink)  
Старый 10.02.2012, 20:05
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

ок)
Ответить с цитированием
  #15 (permalink)  
Старый 11.02.2012, 12:55
Интересующийся
Отправить личное сообщение для denisich84 Посмотреть профиль Найти все сообщения от denisich84
 
Регистрация: 10.02.2012
Сообщений: 18

Вот еще не плохой скрипт но при закрытии браузера таймер сбивается:
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<style>
#set_timer, #timer, #stop_timer {display: none}
#timer {color: black}
</style>
<script>
var FINAL, TIMER;
onload = function ()
{
with (document)
   {
   _CS = getElementById ('cS'); SS_ = getElementById ('sS');
   _CM = getElementById ('cM'); SM_ = getElementById ('sM');
   _CH = getElementById ('cH'); SH_ = getElementById ('sH');
   _CD = getElementById ('cD'); SD_ = getElementById ('sD');
   }
var dC = unescape (document.cookie);
if (dC.indexOf ('type=1') < 0)
   {document.getElementById ('set_timer').style.display = 'block'; SD_.focus ()}
else
   {
   var pm = dC.split ('; ');
   for (var j = 0, lj = pm.length; j < lj; j++)
   if (pm [j].indexOf ('type=1+') == 0) {FINAL = pm [j].split ('+') [1]; break}
   var cT = parseInt (new Date ().valueOf () / 1000, 10);
   var d = FINAL - cT;
   document.getElementById ('txt').innerHTML = (d >= 0) ? 'До конца света осталось' : 'После конца света прошло';
   if (d < 0) {d *= -1; document.getElementById ('timer').style.color = 'red'}
   var s = d % 60; d -= s; d /= 60; _CS.innerHTML = s; 
   var m = d % 60; d -= m; d /= 60; _CM.innerHTML = m; 
   var h = d % 24; d -= h; d /= 24; _CH.innerHTML = h; _CD.innerHTML = d;
   with (document)
      {
      getElementById ('timer').style.display = 'block';
      getElementById ('stop_timer').style.display = 'inline';
      }
   TIMER = setTimeout ('FuncTimer ()', 1000);
   }
}

function FuncSetTimer ()
{
var sDv = SD_.value, sHv = SH_.value, sMv = SM_.value, sSv = SS_.value;
if (sDv.replace (/\d/g, '').length || sHv.replace (/\d/g, '').length ||
sMv.replace (/\d/g, '').length || sSv.replace (/\d/g, '').length) return;
var per = ((sDv) ? sDv : 0) * 24 * 60 * 60 + ((sHv) ? sHv : 0) * 60 * 60 +
          ((sMv) ? sMv : 0) * 60           + ((sSv) ? sSv : 0) * 1;
var cT = new Date ().getTime ();
FINAL = per + parseInt (cT / 1000, 10);
document.cookie = escape ('type=1+' + FINAL + '; expires=' + (cT + 180 * 24 * 60 * 60* 1000));
_CS.innerHTML = (sSv) ? sSv : 0; _CM.innerHTML = (sMv) ? sMv : 0; 
_CH.innerHTML = (sHv) ? sHv : 0; _CD.innerHTML = (sDv) ? sDv : 0; 
with (document)
   {
   getElementById ('set_timer').style.display = 'none';
   getElementById ('txt').innerHTML = 'До конца света осталось';
   getElementById ('timer').style.display = 'block';
   getElementById ('stop_timer').style.display = 'inline';
   }
TIMER = setTimeout ('FuncTimer ()', 1000);
}

function FuncTimer ()
{
var cT = parseInt (new Date ().valueOf () / 1000, 10);
var cDv = _CD.innerHTML, cHv = _CH.innerHTML, cMv = _CM.innerHTML, cSv = _CS.innerHTML;
if (cT <= FINAL)
   {
   cSv = (cSv != 0) ? --cSv : 59;
   if (cSv == 59) cMv = (cMv != 0) ? --cMv : 59;
   if (cSv == 59 && cMv == 59) cHv = (cHv != 0) ? --cHv : 23;
   if (cSv == 59 && cMv == 59 && cHv == 23 && cDv != 0) --cDv;
   }
else
   {
   document.getElementById ('txt').innerHTML = 'После конца света прошло';
   document.getElementById ('timer').style.color = 'red';
   cSv = (cSv != 59) ? ++cSv : 0;
   if (cSv == 0) cMv = (cMv != 59) ? ++cMv : 0;
   if (cSv == 0 && cMv == 0) cHv = (cHv != 23) ? ++cHv : 0;
   if (cSv == 0 && cMv == 0 && cHv == 0 && cDv) ++cDv;
   }
_CS.innerHTML = cSv; _CM.innerHTML = cMv;
_CH.innerHTML = cHv; _CD.innerHTML = cDv;
TIMER = setTimeout ('FuncTimer ()', 1000);
}

function FuncStopTimer ()
{
clearTimeout (TIMER); FINAL = 0;
SD_.value = ''; SH_.value = ''; SM_.value = ''; SS_.value = '';
with (document)
   {
   cookie = escape ('type=0+0; expires=1000');
   getElementById ('timer').style.display = 'none';
   getElementById ('timer').style.color = 'black';
   getElementById ('stop_timer').style.display = 'none';
   getElementById ('set_timer').style.display = 'block';
   }
}
</script>
</head>
<body>
<div id="set_timer">
Установите продолжительность отсчёта:
<p>дни: <input id="sD">
<p>часы: <input id="sH">
<p>минуты: <input id="sM">

<p>секунды: <input id="sS">
<p><input type="button" value="Запустить обратный отсчёт" onclick="FuncSetTimer ()">
</div>

<div id="timer">
<span id="txt"></span>: <span id="cD"></span> дн., <span id="cH"></span> час., <span id="cM"></span> мин., <span id="cS"></span> сек.
</div>

<input id="stop_timer" type="button" value="Остановить отсчёт" onclick="FuncStopTimer ()">
</body>
</html>
Ответить с цитированием
  #16 (permalink)  
Старый 11.02.2012, 15:19
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

оч интерсно засуну в свой проект еще есть?
Ответить с цитированием
  #17 (permalink)  
Старый 11.02.2012, 21:18
Интересующийся
Отправить личное сообщение для denisich84 Посмотреть профиль Найти все сообщения от denisich84
 
Регистрация: 10.02.2012
Сообщений: 18

Может уже мне кто нибудь поможет? и так уже 3 рабочих скрипта выложил)
Ответить с цитированием
  #18 (permalink)  
Старый 11.02.2012, 23:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Вариант с сохранением...
<html>
	<head>
		<meta charset="utf-8">
		<style type="text/css">
			body { background-color:#ffcc33; margin:0px; }
			div { color:#0033cc; font:bold 12pt Tahoma; margin:15px; }
		</style>

	</head>
	<body>
		<input type="button" onclick="New_start()" value="Start/New">
		<input type="button" onclick="Pause();" value="Pause/Go">
        <input type="button" onclick="BackTimer();" value="BackTimer">
        <input type="button" onclick="Set();" value="Set">
        <label><input type="text" value="30" id="sec">sec</label>
        <div>Div HTML</div>
		<script type="text/javascript">
var t = new Date,
    f = 1,
    s, n;
t.setHours(0, 0, 0, 0);
window.localStorage.getItem('f') && (f = ~~window.localStorage.getItem('f'));
window.localStorage.getItem('t') && (t = new Date(window.localStorage.getItem('t')));
document.getElementsByTagName("div")[0].innerHTML = t.toLocaleTimeString()
function Timer() {
    t = new Date(t.getTime() + f * ((new Date).getTime() - s.getTime()));
    document.getElementsByTagName("div")[0].innerHTML = t.toLocaleTimeString();
    s = new Date;
    window.localStorage.setItem('t', t);
    n = setTimeout(arguments.callee, 500)
}
function New_start() {
    window.clearTimeout(n);
    t.setHours(0, 0, 0, 0);
    s = new Date;
    Timer()
}
function Pause() {
    s ? (window.clearTimeout(n), s = !1) : (s = new Date, Timer())
}
function BackTimer() {
    window.clearTimeout(n);
    f = -f;
    window.localStorage.setItem('f', f);
    s = new Date;
    Timer()
}
function Set() {
    var a = parseInt(document.getElementById("sec").value, 10) || 0;
    t.setHours(0, 0, a, 0);
    document.getElementsByTagName("div")[0].innerHTML = t.toLocaleTimeString()
};
Pause()
		</script>
    </body>
</html>
Ответить с цитированием
  #19 (permalink)  
Старый 12.02.2012, 10:12
Интересующийся
Отправить личное сообщение для denisich84 Посмотреть профиль Найти все сообщения от denisich84
 
Регистрация: 10.02.2012
Сообщений: 18

Это конечно все хорошо . Мы запустили таймер закрыли браузер открываем например эту страницу через час и таймер начинает идти с того времени с которого мы закрыли браузер, можно сделать чтобы то время которое браузер был закрыт тоже учитывалось? т.е. при закрытом браузере таймер продолжал отсчитывать время.
Ответить с цитированием
  #20 (permalink)  
Старый 12.02.2012, 15:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от denisich84
при закрытом браузере таймер продолжал отсчитывать время
Вам похоже нужен обычный таймер, который показывает время до определённой даты таких полно в инете да и здесь на форуме.Попробуйте поискать или обратитесь в раздел Работа
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер обратного отсчёта на .hta bk99 Internet Explorer 24 04.06.2012 19:46
Таймер обратного отсчета с часовым поясом destby Общие вопросы Javascript 0 03.08.2011 18:48
Графический таймер обратного отсчета bobri4 Элементы интерфейса 4 24.08.2009 22:50
Таймер обратного отсчета Mihael-Vlz Общие вопросы Javascript 1 14.06.2009 19:21
таймер обратного отсчета Mignon Общие вопросы Javascript 1 07.06.2008 17:16