Запускать функцию Ajax с действиями назад / вперед?

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

К проблеме под рукой. Боюсь, это немного грубо, но сценарий, представленный ниже, по большей части работает.

Проблема в том, что при сохранении истории, когда пользователь переходит назад или вперед, страница не изменяется. Есть ли у вас какие-либо идеи, что я могу сделать, чтобы изменить это, чтобы сработала функция go?

$(document).ready(function(){

 $("a").click(function() {
  if (strpos($(this).attr('href'), 'mob.php') !== false) {
   window.location = url($(this).attr('href'));
   go(idToPath($(this).attr('href')));
   return false;
  }
 });
});

function go(num) {
 if (num != undefined) {
  $.ajax({
   url: "mob.php?p="+num+"&logo=0",
   cache: false,
   success: function(html){
    $("#ajax").html(html);
   }
  });
 }
}

$.history.init(function(u) {});
var page = 4;
var id = window.location.hash.substr(1);
if (id != '' && page != id) {
 go(id);
}

3 ответа

Решение

Там нет такого события.

Но вы можете использовать некоторый плагин истории, чтобы увидеть, как это делается там: http://www.mikage.to/jquery/jquery_history.html

Ну, я не уверен в каком-либо фиксированном решении этой проблемы.

Но я придумал временное решение для этого.

  1. В начале каждой страницы, проходящей через Ajax, я сохраняю информацию о странице и дополнительные параметры. лайк $_SESSION['page'][] = "book.php?cat=1"
  2. Прикрепите функцию к событию истории браузера и вызовите пользовательскую функцию, чтобы получить требуемый URL и перенаправить на него.

Это не очень хороший ответ, но это должно дать вам приблизительное представление.:)

Добавление ajax в смесь состояния браузера вызывает много сложных проблем, как описано здесь: Как отображать запросы Ajax в URL?

Проект jQuery Ajaxy - отличное начало использования состояний ajax и браузера.

Другие вопросы по тегам