使用新的URL更新地址栏,而不散列或重新加载页面

我梦ed以求的是chrome(开发者通道)实现了一种无需重新加载页面即可通过javascript(地址而非域)更新地址栏的方法,或者他们确实做到了。

但是,我找不到我的文章

我疯了还是有办法做到这一点(在Chrome中)?

ps我不是在谈论window.location.hash等。如果以上存在,则该问题的答案将是不正确的。

神无2020/03/11 20:29:50

更新至Davids答案,甚至可以检测不支持pushstate的浏览器:

if (history.pushState) {
  window.history.pushState("object or string", "Title", "/new-url");
} else {
  document.location.href = "/new-url";
}
米亚猴子2020/03/11 20:29:50

现在,您可以在大多数“现代”浏览器中执行此操作!

这是我阅读的原始文章(发布于2010年7月10日):HTML5:更改浏览器URL而不刷新page

要更深入地了解pushState / replaceState / popstate(又称HTML5历史API),请参阅MDN文档

TL; DR,您可以执行以下操作:

window.history.pushState("object or string", "Title", "/new-url");

有关基本操作方法,请参阅我的答案,无需重新加载页面即可修改URL