Я использую history.js для изменения URL-адреса страницы с помощью pushState
при изменении содержимого с помощью ajax.
Моя проблема в том, что начальная страница, на которую я перехожу, не работает с кнопкой назад. Содержимое не сохраняется или информация, которую я использовал для получения содержимого, не сохраняется.
Если я вызываю pushState
при инициализации, это работает, но тогда у меня каким-то образом есть две записи на этой странице. Поэтому, когда я наношу ответный удар, мне приходится наносить ответный удар снова, чтобы попасть на главную страницу, с которой я пришел. Не знаю, имеет это смысл или нет. Кажется, я не нашел здесь ничего, относящегося к моему конкретному делу.
$(function() {
var History = window.History;
if ( !History.enabled ) {
return false;
}
if($.url().attr('fragment')){
var url = $.url().attr('fragment').split("-");
}else{
var url = $.url().attr('path').split("-");
}
photo_ajax(url[3],url[2],url[4]); //perform ajax content update
//initialize first page but doesn't quite work as it creates two entries
//History.pushState({pho_id:url[3],per_id:url[2],a_id:url[4]}, "Viewing Photo", $.url().attr('path'));
History.Adapter.bind(window,'statechange',function() {
var State = History.getState();
photo_ajax(State.data.pho_id,State.data.per_id,State.data.a_id);
});
});
$(document).ready(function(){
$(document).on('click', '[id^="dopho_"]', function(event){
var id = $(this).attr("id").split('_');
event.preventDefault();
History.pushState({pho_id:id[1],per_id:id[2],a_id:id[3]}, "Viewing Photo", $(this).attr('href'));
});
});