我的多级菜单片段
- 仪表板-domain.com/Dashboard
- 帐户
- 仪表板-domain.com/帐户/仪表板
- 消息-domain.com/帐户/消息
- 工作站
- 仪表板-domain.com/工作站/仪表板
- 任务-domain.com/工作站/任务
我的推送状态
我有一个完全可用的 PushState
变量,它将创建上面以粗体显示的部分,即我希望 URL 显示的方式。
PushState = $(e.target).parentsUntil(".Menu").filter("li").children("a").map(function() {
return $(this).find('span.Title').text().trim().replace(/&/g,"and").replace(/\s+/g, '-').replace(/Master-Dashboard/g,"Dashboard");
}).get().reverse().join("/");
window.history.pushState(null, null, PushState);
<小时/>
我遇到的问题
在页面加载时,单击帐户 > 仪表板
后,它会将地址栏中的 URL 更改为 domain.com/Account/Dashboard
,但是单击后在 Workstation > Dashboard
上,地址栏中的 URL 更改为 domain.com/Account/Work-Station/Dashboard
,然后再次返回 domain.com/Account/工作站/帐户/仪表板
问题
在不重新加载页面并允许 bask/forward 功能的情况下,如何更改 domain.com/
之后的所有内容,而不是添加到最后一个 /
作为目前正在做。
最佳答案
history.pushState({}, "","/"+ PushState);
// passes an empty state, an empty string, and a full URL with the leading slash
您需要斜杠来删除之前的路径。
关于javascript - 更改地址 URL 全部为 "domain.com/"后无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761908/