Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2017, 08:15
Интересующийся
Отправить личное сообщение для losapwild Посмотреть профиль Найти все сообщения от losapwild
 
Регистрация: 22.04.2017
Сообщений: 25

localStorage - скрипт не работает при отключеных куки
Здравствуйте. Есть скрипт http://jsfiddle.net/SCyWG/71/

$(function(){
			var num = 19,
					output = $('#mydiv'),
					LS_allowed=('localStorage' in window),
					restart=1/60/60*10;//Convert 1 hour to 10 seconds
			
			if(LS_allowed){
				var save_time=parseInt(localStorage.getItem('timer-time'))||0;
				if(save_time+restart*60*60*1000>=(new Date()).getTime())
					num=localStorage.getItem('timer-num')||num;
			};
			
			output.text(num);
			(function changeNum(){
				setTimeout(function(){
						if(num<=0) 
							return;
						
						output.text(--num);
						if(LS_allowed){
							localStorage.setItem('timer-num',num);
							localStorage.setItem('timer-time',(new Date()).getTime());
						};
						changeNum();
				},1000+(19-num)*100);
			})();
});


Это счетчик, который сохраняется в localStorage и при обновлении не сбрасывается.


Но если зайти на сайт с отключенным куки то счетчик пропадает. Как сделать так, чтобы не пропадал, а просто сбрасывался при обновлении страницы? Мне важно его отображение, просто где вкл куки, чтобы сохранялся, где нет, то просто показывался.

Спасибо


Если что, раньше было так

var timer,
    num = 19,
    output = $('#mydiv');

function changeNum(){
    output.text(num--);
    //каждый раз задержка будет на 100ms больше
    if(num >= 0) setTimeout(changeNum,500+(19-num)*100);
}
setTimeout(changeNum,500);


Но так счетчик работал, но не сохранялся

Последний раз редактировалось losapwild, 23.04.2017 в 08:18.
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2017, 10:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

losapwild,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var num = 19,
    output = $('#mydiv'),
    LS_allowed=!!(window.localStorage);
    if (LS_allowed && localStorage.getItem('num')) num = +localStorage.getItem('num');
function changeNum(){
    output.text(num--);
    if (LS_allowed) localStorage.setItem('num',num);
    //каждый раз задержка будет на 100ms больше
    if(num >= 0) setTimeout(changeNum,500+(19-num)*100);
}
setTimeout(changeNum,500);

});
  </script>
</head>

<body>
<div id="mydiv"></div>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает только на первом экране AnMiheeva Общие вопросы Javascript 0 11.06.2014 03:56
скрипт работает только на последнем пункте меню walking Элементы интерфейса 0 08.01.2012 14:56
скрипт работает в IE не работает в Opera!!! Ikram Opera, Safari и др. 3 29.10.2010 10:04
скрипт на сайт под Джумлой, не работает в FF matysse Элементы интерфейса 1 11.10.2010 21:14
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32