как сохранить переменные JavaScript, даже если я перезагрузить или перенаправить на любую другую страницу - PullRequest
1 голос
/ 17 марта 2012

Я создал слайдер изображений.Этот слайдер появляется на каждой странице моего сайта.С каждым изображением в слайдере изображений связано событие клика.При нажатии на любое изображение есть переменные, в которых хранятся данные, связанные с этим изображением (например, имя исполнителя и т. Д., И эти поля скрыты).

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

Теперь проблема в том, что когда я захожу на страницу художников, переменные не отображаются, потому что файл js снова загружен и все данные потеряны.Файл Javascript для обеих страниц одинаков.На самом деле, все страницы на моем сайте должны использовать один и тот же файл js.Но, находясь на странице художников, если я нажимаю на любое изображение, тогда отображаются данные.Я хочу, чтобы данные были сохранены и отображены, даже если они будут перенаправлены на страницу художников.

Я пробовал событие ready (), но без помощи.Как это сделать?

PS Сайт создан с использованием Drupal 7

Ответы [ 3 ]

1 голос
/ 17 марта 2012

Я предполагаю, что ваши данные не обрабатываются на стороне сервера. Данные переменных JavaScript НЕ сохраняются при каждом посещении страницы. это всегда новый старт для каждой страницы.

Вы должны использовать куки для этого. У jQuery также есть плагин cookie, но я еще не пробовал (попробуйте спросить Google). Другой способ - использовать HTML 5 Web storage , но учтите, что это HTML5, довольно новая функция.

В основном вы хотите сделать следующее:

  1. нажмите элемент
  2. хранить данные в cookie
  3. перейти на следующую страницу
  4. читать данные в cookie
  5. дисплей
0 голосов
/ 17 марта 2012

Есть много способов добиться этого, однако, одним из самых простых способов в вашей ситуации может быть простое повторное получение данных.Как первая страница может получить переменные?Используете ли вы шаблонный движок Drupal для передачи их клиенту?Получает ли он исходные данные javascript через AJAX?

Если первый равен true, вам, возможно, придется изменить хуки рендеринга шаблона в Drupal, чтобы получать данные так же, как первая страница, и передавать их в новуюpage.

Если последнее верно, просто запросите данные заново, используя jQuery onReady, как вы упомянули.Вам все еще может понадобиться использовать модуль Drupal, чтобы предоставить данные в качестве веб-сервиса для извлечения вашего jQuery, или вы можете просто написать свой собственный модуль php page / drupal, чтобы вручную извлечь данные из базы данных с помощью абстракции базы данных drupal.

0 голосов
/ 17 марта 2012

Вы не можете напрямую. Состояние Javascript очищается при каждой загрузке страницы.

Варианты:

  1. Вместо полной перезагрузки страницы, посмотрите, можете ли вы сделать что-то AJAX-y для замены содержимого
  2. Используйте сеансовые куки для сохранения состояния
  3. Используйте HTML 5 Local Storage, если браузер поддерживает это
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...