Javascript pushState, onpopstate - после ~ 10 состояний - нажатие 5-го шага (на кнопке назад) и выводит 4-й шаг - PullRequest
0 голосов
/ 05 мая 2018

Код, используемый для pushState

        window.history.pushState({"html":r[0],"pageTitle":r[1], 'bread_crumbs': r[2], 'page': r[3], 'parentid': r[4], 'pageid': r[5]},"", h);

Код, используемый для проверки состояний

window.onpopstate = function(e) {
    console.log(e.state.page+'|'+location.href);

Допустим, я посетил 10 страниц - когда я нажимаю на страницу № 5, в браузере отображается хороший заголовок. Но по какой-то странной причине он выдает страницу № 4.

Это работает, если я нажимаю кнопку «назад», может быть, вы знаете - Chrome отображает все шаги после нажатия второй кнопки мыши. Итак, здесь происходит эта проблема.

Спасибо.

Вы можете попробовать это здесь http://demo.ajax -cart.com /

Нажмите 1. Тестовая категория 2. Бренды 3. Блог 4. О 5. Новости

Перейдите с кнопкой «Назад» в «Наш блог» - вы увидите «Бренды».

1 Ответ

0 голосов
/ 05 мая 2018

Я нашел решение

Это было

            document.title = r[1];
            window.history.pushState({"html":r[0],"pageTitle":r[1], 'bread_crumbs': r[2], 'page': r[3], 'parentid': r[4], 'pageid': r[5]},"", h);

Но это должно быть

        window.history.pushState({"html":r[0],"pageTitle":r[1], 'bread_crumbs': r[2], 'page': r[3], 'parentid': r[4], 'pageid': r[5]},"", h);
        document.title = r[1];
...