Как добавить состояние истории браузера? - PullRequest
1 голос
/ 03 сентября 2010

Итак, я вижу, что многие люди рекомендуют скрытый iFrame взлом, который является плагином истории jQuery , но все, что мне действительно нужно, - это другая половина этой техники:* Оба из них работают отлично.Теперь я хотел бы присоединить эти две строки

  var loc = window.location.hash;
  if(loc != '') $(loc).click();

к событию, но, похоже, нет такой, которая будет последовательно вызываться кнопкой возврата.Есть ли способ добавить состояние истории браузера, в котором сохранится существующий URL, чтобы сработала вышеуказанная техника?

1 Ответ

2 голосов
/ 03 сентября 2010

Есть событие под названием window.onhashchange, хотя не все его поддерживают, но ... есть плагин от Ben Alman для решения этой проблемы.

Плагин заставляет его работать в кросс-браузерном режиме, используя window.onhashchange (собственное событие), если он там есть.Если нет, то он опрашивает каждые 50 мс и запускает само событие, если хэш изменяется.Используя плагин , ваш код будет выглядеть так:

$(window).hashchange(function() {
  var loc = window.location.hash;
  if(loc != '') $(loc).click();    
});

Вам просто нужен этот код в одном месте.Вы можете запустить его один раз в document.ready, просто запустив событие после его привязки, как описано выше, выполнив следующее:

$(function(){
  $(window).hashchange();
});
...