Javascript pushState,onpopstate - 在~10个状态之后 - 单击第5步(在后退按钮上),



用于推送状态的代码

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. 新闻

使用后退按钮转到"我们的博客" - 您将看到"品牌"。

我找到了解决方案

它是

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

相关内容

  • 没有找到相关文章

最新更新