Popstate не работает должным образом (требуется несколько кликов)

Я пытаюсь изучить History Web API, но у меня уже есть проблемы с первого раза.

Я могу получить history.pushState работает, но есть проблемы с popstate, Работает нормально при первом нажатии после AJAX загрузка страницы, но если я загружаю ту же самую страницу снова, мне нужно дважды нажать кнопку назад. Если я загружу его еще раз, мне нужно будет нажать три раза назад и так далее.

Вот мой код:

$(function(){
var $main = $('#main');


$(window).on('popstate', function () {
    loadPage(location.href); 
});

$(document).on('click', 'a', function(){
    var href = $(this).attr('href');
    history.pushState({}, '', href);
    loadPage(href);
    return false;
})

loadPage = function(href){
    $main.load(href);
}
})

1 ответ

Вам нужен государственный объект. В вашем случае вы используете пустой объект, который не будет работать неправильно. Просто протестируйте с Объектом, подобным этому: {"url":yourUrlVar}

Ссылка: History.pushState - MDN

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