Запуск функции Ajax с действиями назад / вперед? - PullRequest
1 голос
/ 22 июня 2010

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

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

Проблема в том, что при сохранении истории, когда пользователь переходит назад или вперед, страница не изменяется.У вас есть идея, что я могу сделать, чтобы изменить эту функцию, чтобы сработала функция 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 ]

1 голос
/ 22 июня 2010

Нет такого события.

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

0 голосов
/ 18 сентября 2010

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

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

0 голосов
/ 22 июня 2010

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

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

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

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

...