Я использую history.JS(последний) с Jquery (последним), чтобы загрузить и заменить только часть веб-сайта, это все работает, в настоящее время я только пытаюсь заставить его работать в современных браузерах, m не возится с изменениями хэша.
Все работает, однако, когда я нажимаю кнопку "Назад" в браузере (последние FF и Chrome), страница не изменяется (хотя URL и название меняются). У меня был google и взгляд здесь, но я не вижу, что происходит.
Глядя на переполнение стека, я нашел эту страницу: Восстановление содержимого при нажатии кнопки с помощью History.js, который, похоже, задает аналогичный вопрос. Я добавляю загруженное содержимое #left_col (которое заменяется div) к данным состояния, но я не совсем уверен, куда идти оттуда, я знаю, что мне нужно перезагрузить эти данные при изменении состояния, но я не вижу, как.
var History = window.History;
var origTitle = document.title;
if ( !History.enabled ) {
return false;
}
History.Adapter.bind(window,'statechange',function(){
var State = History.getState();
History.log(State.data, State.title, State.url);
});
$('.ajaxload').live("click", function() {
History.pushState({state:1,leftcol:$('#left_col').html()}, origTitle, $(this).attr("href"));
$('#left_col').load($(this).attr("rel"));
return false;
});
Я очень благодарен за любую помощь!
обновление:
Мне удалось получить страницу для изменения пользователем, щелкнув его назад, но он не загружает правильное состояние (кажется, он переходит на два состояния, а не один), код, который я добавил к вышеуказанному коду,
window.addEventListener('popstate', function(event) {
var State = History.getState();
$('#left_col').html(State.data.leftcol);
});