是否可以在不通过 jQuery/Javascript 重新加载页面的情况下重写 URL?
假设您有以下网址:
http://stackoverflow.com/questions/ask
我们可以附加值吗:/pId=XYZ
所以你可以得到
http://stackoverflow.com/questions/ask/pId=XYZ
这可能吗?
是否可以在不通过 jQuery/Javascript 重新加载页面的情况下重写 URL?
假设您有以下网址:
http://stackoverflow.com/questions/ask
我们可以附加值吗:/pId=XYZ
所以你可以得到
http://stackoverflow.com/questions/ask/pId=XYZ
这可能吗?
您可以在不重定向的情况下更改的是 url 的哈希部分:
document.location.hash = "whatever";
是的,您可以,而且您不需要 jquery:只需使用 History API:https ://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history
请注意,在复杂的 ajax 应用程序中处理历史记录通常有点痛苦,因为您必须处理页面的状态序列化、状态加载等。而且你不能像许多 ajaxified 网站一样将它应用到设计糟糕的网站上。这不适用于像 IE9 这样的“旧”浏览器。
你可以得到当前的网址
var url = document.location.href;
然后将部分添加到 url
url += "/mySubFolder";
我的帖子的其余部分不适合这个问题......我应该更仔细阅读:(!
遇到这个问题后,我认为@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找到文档