Включение обратной / передней навигации браузера для загрузок страницы, которые не меняют хеш URL - PullRequest
2 голосов
/ 24 февраля 2010

У меня есть сайт Ajax, на котором навигация в браузере подключена к загрузке страниц ajax в тех случаях, когда навигация приводит к изменению хеша URL.

Мне было интересно, как лучше всего получить историю навигации для загрузок Ajax, которые не приводят к изменению хэша.

Итак, скажем, у меня есть ссылки уровня 1, которые при нажатии приводят к изменению хеша URL. Что-то вроде плагина jquery history подхватывает это и вызывает мой обработчик, и навигация вперед / назад отлично работает для этих ссылок уровня 1.

Но у меня есть набор ссылок уровня 2, которые извлекают данные, используя обработчик click (который внутренне выполняет некоторые выборки Ajax), вместо того, чтобы идти по маршруту плагина URL hash + history. В настоящее время это не приводит к изменению URL / хэша. Я хочу, чтобы на этих ссылках уровня 2 была включена навигация в браузере.

Кажется, что для того, чтобы это работало гладко, я должен изменить URL-адрес, так что я думаю, что любое решение здесь включает в себя еще какое-то украшение хеша. Одно из решений, которое могло бы работать, но я бы никогда не задумывался всерьез, - это закодировать имя функции JS, которую я хочу выполнить, и параметры как-то в хэш URL, а затем обработчик загрузки истории вызовет эту функцию. Blech!

У кого-нибудь есть умные идеи о том, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

Хммм ... может быть, jQuery BBQ плагин это то, что вы ищете?

0 голосов
/ 25 февраля 2010

Одна вещь, которую я сделал для проекта, заключалась в использовании значений хеш-функции, таких как:

IDProduct-8185--tab-tech--g-8184

То есть было 3 параметра: IDProduct = 8185, tab = "tech" и g = 8184. Затем я'd split через "-" и зациклить полученный массив.Вероятно, не самое элегантное решение, и работает только для очень простых значений параметров.Лучше взгляните на плагин для барбекю, который Шон предлагает первым.

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