лучший способ привязать уникальное локальное хранилище к уникальной веб-странице домена - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть движок javascript, который создает «журнал» из типичной веб-страницы.Несколько веб-страниц будут иметь отдельные «проблемы», и все они будут использовать один и тот же механизм JavaScript, который управляет форматированием и поведением.

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

localStorage.setItem('currentPage',JSON.stringify(currentPage));
var currentPage = JSON.parse(localStorage.getItem('currentPage'));
var remover = $('.article-wrapper:eq(' + currentPage + ')');

моя проблема в том, что если я зайду на страницу 5 журнала под названием «осень», закрою ее и открою журнал под названием «весна», то я начну со страницы5 of spring.

Есть ли способ, которым я могу установить уникальное имя переменной 'currentPage' для каждой проблемы в html для этой проблемы, прочитать его с помощью javascript для движка и затем сохранить его в локальномхранилище для компьютера / устройства, которое использует пользователь?

Вы можете проверить проблему, посетив эти два сайта.Откройте оба.Перейдите на пятую страницу одного сайта, а затем обновите другой.Номер другой страницы изменится.

http://straathof.acadnet.ca/autumn/

http://straathof.acadnet.ca/portfolio/

1 Ответ

2 голосов
/ 30 апреля 2012

Вместо сохранения currentPage в виде простого целого числа сохраните объект, который отслеживает как URL текущей страницы, так и страницу для этого URL.

Например:

// When saving the current page.
var currentPage = new Object();
var url = window.location.pathname;
currentPage[url] = 9;
localStorage.setItem('currentPage', JSON.stringify(currentPage));

// When loading the current page.
var currentPage = JSON.parse(localStorage.getItem('currentPage'));
var remove = $('.article-wrapper:eq(' + currentPage[url] + ')');

Если вам не нравится указывать полный URL-адрес в качестве ключа, вы можете использовать indexOf, чтобы найти имя страницы.См. этот ответ StackOverflow для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...