2

是否可以在不通过 jQuery/Javascript 重新加载页面的情况下重写 URL?

假设您有以下网址:

http://stackoverflow.com/questions/ask

我们可以附加值吗:/pId=XYZ

所以你可以得到

http://stackoverflow.com/questions/ask/pId=XYZ

这可能吗?

4

5 回答 5

6

您可以在不重定向的情况下更改的是 url 的哈希部分:

document.location.hash = "whatever";
于 2012-08-17T13:11:53.977 回答
4

是的,您可以,而且您不需要 jquery:只需使用 History API:https ://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

请注意,在复杂的 ajax 应用程序中处理历史记录通常有点痛苦,因为您必须处理页面的状态序列化、状态加载等。而且你不能像许多 ajaxified 网站一样将它应用到设计糟糕的网站上。这不适用于像 IE9 这样的“旧”浏览器。

于 2012-08-17T13:09:30.817 回答
1

是的,我们可以,但仅限于实现pushState的浏览器。

在此处查看其他 答案

于 2012-08-17T13:12:44.927 回答
1

你可以得到当前的网址

var url = document.location.href;

然后将部分添加到 url

url += "/mySubFolder";

我的帖子的其余部分不适合这个问题......我应该更仔细阅读:(!

于 2012-08-17T13:14:52.883 回答
0

遇到这个问题后,我认为@DenysSéguret 的答案正是你所需要的。

当浏览器支持时,您可以使用

window.history.pushState(stateObj, title, url);

或者

window.history.replaceState(stateObj, title, url);

正如@DenysSéguret 所述,您可以在
https://developer.mozilla.org/en-US/docs/Web/API/History_API找到文档

于 2016-01-05T10:37:22.580 回答