Javascript pushState, onpopstate - 在 ~10 个状态之后 - 点击第 5 步(在后退按钮上)并输出第 4 步

Javascript pushState, onpopstate - after ~10 states - clicking 5th step (on back button) and it outputs 4th step

用于 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/

点击 一、测试类别 2.品牌 3.博客 4.关于 5.新闻

使用后退按钮转到 "Our Blog" - 您将看到 "Brands"。

我找到了解决方案

            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];