Я использую для прослушивания события хешмена. Но теперь с HTML5 вы можете изменить URL-адрес без использования хэша. Как добавить изменения для изменения списка?Есть ли обработчик изменения URL-адреса для приложения HTML5 AJAX? (Как обработчик hashchange для HTML4)
ответ
хеш-изменения могут произойти даже без использования JS. Подобно по умолчанию поведение нажатия ссылки привязки может вызвать хэш-изменение.
Объект истории HTML5 можно обрабатывать только через JS. Для этого есть pushState() и replaceState(). После использования браузер назад и вперед buttun вызовет popstate event. Нет никаких других обработчиков событий, которые я знаю для истории HTML5.
$(window).bind("popstate", function() {
console.log(window.location.href);
});
Если вам требуется триггер всякий раз, когда что-то подталкивает государства к объекту истории, то вы должны полагаться на тот, кто называет это позволить наблюдателям (обратных вызовов) для него.
В противном случае вы могли бы попробовать что-то что-то не так: надежный
function onPushState(callback) {
(function(pushState) {
history.pushState = function() {
pushState.apply(this, arguments);
callback.apply(window, arguments);
};
})(history.pushState);
}
onPushState(function() {
console.log(window.location.href);
});
Вы могли бы сделать то же самое о замене государства.
Опять же, это может быть не очень хорошая идея, поскольку вы меняете поведение браузера по умолчанию.
Я не думаю, что функция pushstate работает – einstein
Я использую Chrome – einstein
@ Woho87 работает для меня (также на хроме): http://jsfiddle.net/Cxjey/ –