Обрабатывать кнопку возврата браузера с помощью Javascript / возможен другой подход с помощью якорей? - PullRequest
3 голосов
/ 01 июня 2011

В настоящее время я борюсь с хорошей навигацией по сайту с использованием Ajax-вызовов и ненавязчивого JS.Я ловлю событие щелчка по ссылкам, загружаю контент, присоединяю его к div и затем возвращаю false.Это работает довольно хорошо, а также позволяет Google сканировать сайт с помощью голосовых URL.

Но я не знал, что делать с кнопкой возврата браузера.Я нашел это решение, чтобы поймать событие, когда пользователь нажимает кнопку «Назад»:

http://www.bajb.net/2010/02/browser-back-button-detection/

Это работает довольно хорошо.Но я также хочу, чтобы кнопка «Назад» работала нормально, когда пользователь нашел веб-сайт по ссылке и хочет вернуться на предыдущую страницу (я не хочу никого ловить).

Когда я думал об этом,лучший способ будет использовать якоря.Обычная кнопка «назад» поддерживает их, и вы можете вернуться в историю без перезагрузки страницы (/ # 1 <- / # 2 <- / # 3 и т. Д.) </p>

Это будет работать так:

  • Используйте обычные URL-адреса в ссылке, но перехватывайте событие клика
  • Когда пользователь щелкает, загружает контент и присоединяет его к DIV
  • Измените расположение окна, используя привязку(например, 'domain.com/#products/women-clothing' with window.location = "# products / women-clothing";)
  • Когда изменяется window.location, получите привязку, прочитайте путьи получить контент через ajax, прикрепить его к DIV

Только последняя часть мне не совсем понятна, и мне может понадобиться помощь здесь.

В заключение мой вопрос:Имеет ли это какой-то смысл?

Спасибо!

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Я решил проблему с помощью этого замечательного плагина jQuery: History.js

Спасибо!

1 голос
/ 01 июня 2011

Просто добавьте href к window.location.hash после загрузки содержимого в div.Затем вы можете использовать этот скрипт обнаружения кнопки «назад» для загрузки того, что находится в хэше.

...