У меня есть функция, которая загружает динамический контент из базы данных, она вызывается при нажатии на определенные ссылки:
JQuery
<script>
function loadContent(href){
$.getJSON("/route", {cid: href, format: 'json'}, function(results){
$("#content_area").html("");
$("#content_area").append(results.content);
reinitFunc1();
reinitFunc2();
reinitFunc3();
// history.pushState('', 'New URL: '+href, href);
});
};
</script>
Я хочу включить pushState
и onpopstate
.
Я могу включить изменение URL-адреса и истории браузера, раскомментировав приведенную выше строку history.pushState
— навигация вперед и назад по нескольким страницам работает правильно.
Но это не загружает содержимое.
Некоторое время назад я думал, что у меня была полная функциональность (т.е. навигация и загрузка контента) с добавлением следующих элементов:
window.onpopstate = function(event) {
console.log("pathname: "+location.pathname);
loadContent(location.pathname);
};
Поэтому я попытался добавить их в отдельный блок:
<script>
$(document).ready(function() {
window.onpopstate = function(event) {
console.log("pathname: "+location.pathname);
loadContent(location.pathname);
};
});
</script>
Но это приводит к тому, что диапазон страниц при навигации ограничивается одной, и я не могу перемещаться вперед.
Как я могу добиться как навигации, так и загрузки контента, используя приведенный выше код в качестве основы?
Изменить
И для справки, правильные пути есть в истории браузера, просто по ним не пройти (ФФ и Хром) и соответствующий контент не загружается. Ошибок в Firebug нет.