@gsaw

Почему не работает history api в браузере?

Глупый вопрос конечно, ясно что из за меня. Но помогите пожалуйста разобраться. Я вроде все прочитал, но не пойму как сделать правильно.

Мне надо в приложении сделать навигацию в пределах одной страницы. Точнее использовать кнопки браузера вперед/назад, что бы переключаться между состояниями приложения.

До этого с history api ничего общего не имел, потому сделал маленький файл test.html для опытов и положил его в c:\temp

<html>
<body>
    <script>
        window.onpopstate = function (ev) {
            console.log("onpopstate", ev, window.history.state);
        };
        history.pushState("push1", "", "?push=1");
        history.pushState("push2", "", "?push=2");
        history.pushState("push3", "", "?push=3");
        history.pushState("push4", "", "?push=4");
    </script>
</body>
</html>


Открываю вкладку браузера к примеру с google.com. Потом в url строке вбиваю file:///C://temp//test.html и вижу file:///C://temp//test.html?push=4

Все верною Но если я нажимаю кнопку Назад в браузере, то попадаю сразу на страницу google.com. Хотя ожидал увидеть в URL строке браузера с параметром push=3, то есть file:///C://temp//test.html?push=3

Почему так происходит? Если в скрипте добавляю history.back() то Колбак метод показывает мне предыдущий стейт. А вот кнопка сразу кидает на другой сайт обратно. Не видит она историю созданную мной получается.

Спасибо зарание
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы