如何在不重新加载页面的情况下修改URL?

有没有办法可以在不重新加载页面的情况下修改当前页面的URL?

如果可能的话,我想访问#hash 之前的部分。

我只需要在域之后更改部分,因此我不会违反跨域策略。

 window.location.href = "www.mysite.com/page2.php";  // Sadly this reloads


饮歌长啸
浏览 859回答 4
4回答

郎朗坤

HTML5引入了history.pushState()和history.replaceState()方法,分别允许您添加和修改历史条目。window.history.pushState('page2', 'Title', '/page2.php');从这里了解更多相关信息

紫衣仙女

如果要更改URL但不想将条目添加到浏览器历史记录,也可以使用HTML5 replaceState:if (window.history.replaceState) {    //prevents browser from storing history with each change:    window.history.replaceState(statedata, title, url);}这将“打破”后退按钮功能。在某些情况下可能需要这样做,例如图像库(您希望后退按钮返回到图库索引页面而不是向后移动您查看的每个图像),同时为每个图像提供其自己唯一的URL。
打开App,查看更多内容
随时随地看视频慕课网APP