Задать вопрос
facepook
@facepook
С детства болею неизлечимым сео-даром!

Как доработать данный ротатор, что-бы он помнил url?

Доброго дня!
У меня на странице, стоит ротатор текста.
Вот его код на jsfiddle.

Но к сожалению, он выполняет только 2е из 3х нужных мне задач:
  1. Выводит один из текстов в рандоме, и даже после обновления страницы пользователем - текст остается тем же
  2. Запоминает результат рандома на сутки, чтобы на следующий день этот пользователь увидел уже другой текст с рандома
  3. НО, для всех разных url - он покажет один и тот же текст...


Вопрос:
- Как дополнить скрипт, чтобы на разных страницах - показывался разный рандом. И при этом запоминался как рандомный текст, так и url на котором он был показан.

Грубо говоря: Нужно чтобы он запоминал рандомный текст на 24 часа для каждой страницы (url)...

Заранее спасибо!

На всякий случай добавлю код сюда:
JS:
<script type="text/javascript">
var textArr = ['текст1','текст2','текст3','текст4','текст5','текст6'];
var days = 1;
var hours = 0;
var minutes = 0;
var seconds = 0;

days = 1000*60*60*24*days;
hours = 1000*60*60*hours;
minutes = 1000*60*minutes;
seconds = 1000*seconds;

function getText(){

  if(localStorage.text){
    var localData = JSON.parse(localStorage.text);
  	var date = localData.date;
    if(+date > new Date().getTime()){
      document.getElementById('text').innerHTML = localData.text;
    	return;
    }
  }
  var newText = {
  	text: textArr[~~(Math.random()*textArr.length)],
    date: new Date().getTime() + days + hours + minutes + seconds
  };
  document.getElementById('text').innerHTML = newText.text;
  localStorage.text = JSON.stringify(newText);

}
getText();
</script>


И вывод в шаблоне кодом:
<div id="text"></div>
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
var uri = location.pathname;
localStorage.setItem(uri, newText); // ключ локального хранилища url данной страницы
if(localStorage.getItem(uri)) // ищем ключ такой же как url нашей страницы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы