Сохранить место прокрутки при переходе назад с другой страницы через браузер назад или по ссылке назад? - PullRequest
1 голос
/ 18 апреля 2011

У меня возникли проблемы с поддержкой местоположения полосы прокрутки.

Фон
У меня есть браузер горизонтальных изображений на одной из моих страниц. Он лениво загружает свои изображения, поэтому потенциально может пролистывать тысячи изображений. Когда вы щелкаете каждое изображение, вы переходите на страницу с подробными изображениями и метаданными. С этой страницы вы также можете перемещаться непосредственно по другим страницам сведений в том же порядке, в котором вы их видели в скроллере.

редактировать: уточняющий
Есть страница с HTML-элементом с переполнением: авто и полосой прокрутки. Содержимое этого элемента очень и очень длинное. Когда вы отойдете, а затем вернетесь на эту страницу, я бы хотел, чтобы полоса прокрутки помнила последнее место, на которое вы смотрели.

Цель
То, что я хотел бы сделать, это позволить пользователю вернуться на страницу со скроллером без его сброса в начало скроллера каждый раз. Если вы используете кнопку браузера «назад», это работает автоматически, но когда вы используете мою явную ссылку на результаты поиска / просмотра, вы начинаете каждый раз с начала. (Кроме того, кнопка браузера «назад» становится менее практичной, когда люди несколько раз переходят от страницы сведений к странице сведений.)

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

Я также не хочу помещать его в объект $ _GET, так как это будет портить SEO страниц, поскольку несколько URL-адресов указывают на одну и ту же страницу.

Вопрос
Как вы думаете, это лучший способ реализовать это?

  • Должен ли я использовать некоторый ум с window.history?
  • Должен ли я отправить запрос AJAX с местоположением прокрутки в скрипт, который будет хранить значение в объекте $ _SESSION?
  • Что-то еще?

Заранее спасибо за ваши предложения.

1 Ответ

0 голосов
/ 20 апреля 2011

Решение, которое я в итоге использовал, состояло в том, чтобы установить переменную сеанса с уникальным идентификатором элемента на каждой странице сведений, затем прочитать эту переменную сеанса на странице просмотра и использовать смещения для прокрутки непосредственно к элементу, который последний раз проверялсяподробная страница.

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