2013-04-17 32 views
3

一个计算器问题URL包括一个servlet,编号和标题是这样的...更改URL,动态无添加之前的历史堆栈

stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page 

我的网站可与URL的,像这样以同样的方式...

localhost:8443/user/1/admin 

查询我在后端获取用户信息只需要id号。之后的用户名称仅供展示。所以,如果你输入到浏览器这对localhost:8443/user/1/a它会给你确切的同一页面,因为这localhost:8443/user/1/admin

#2能够注意到该URL的结尾部分缺失,并添加回来的。所以,如果你把这个到地址栏

stackoverflow.com/questions/824349/modify 

他们将其更改为这个动态

stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page 

现在我没有读有关更改URL的动态的计算器,每个人都不停地提到history.pushstate所以我试了一下。问题在于它将不正确的URL添加到历史堆栈中。我想完成的是将网址更改为它应该包含的路径,而不是将错误的URL包含到历史堆栈中。所以如果用户决定回去,他们回到他们最后没有的实际页面上,stackoverflow.com/questions/824349/modify。就像stackoverflow一样。我怎么能这样做!?

+0

没有测试history.replaceState,但你可能想看看['window.location.replace()'](https://developer.mozilla.org/en -US/docs/DOM/window.location#Methods)方法。 – Passerby

回答

0

尝试使用,而不是history.pushState