Поймать событие «Назад» в браузере и загрузить различный контент - PullRequest
1 голос
/ 19 декабря 2011

Я работал над проектом, используя метод hashbang (#!) для пропуска страниц. В основном это только 1 страница, и когда вы нажимаете, чтобы перейти на другую страницу, вы остаетесь на странице, но URL-адрес меняется, например, от index.html#home до index.html#about и новый контент загружается через AJAX / JSON. Все работает хорошо, но если я перехожу "назад" (или вперед) в браузере, изменяется только страница в URL, но мой jQuery не запускается для перезагрузки содержимого.

Что мне нужно, так это некоторый код, который будет обрабатывать действия «назад» и «вперед» во всех браузерах, чтобы я мог запустить функцию загрузки страницы из jQuery. Как мне это сделать?

Ответы [ 3 ]

4 голосов
/ 21 декабря 2011

Зачем изобретать велосипед? History.js - это отличный и хорошо поддерживаемый плагин jQuery, который поддерживает новый HTML5 History API и изящно использует хеш-URL вместо того, чтобы не поддерживать History API.Работает практически в каждом браузере (даже в IE 6).

1 голос
/ 19 декабря 2011

Существует плагин jQuery, который, кажется, делает именно то, что вы хотите.

http://www.asual.com/jquery/address/

Это был самый высокий голос за квест Что лучшекнопка возврата jQuery плагин?

1 голос
/ 19 декабря 2011

Посмотрите на событие hashchange. Он срабатывает при изменении хэша. Однако, вы должны делать это только для поддержки Internet Explorer 8.

Internet Explorer 7 не поддерживает hashchange, поэтому на это нельзя полагаться. Что касается Internet Explorer 9, он (наряду с Chrome, Safari и Firefox, конечно) поддерживает History API , который вместо следует использовать . Он сохраняет ваши URL ясными, короткими и семантическими, а также поддерживает элегантную поддержку кнопок «Назад» и «Вперед».

...