javascript - 更改地址 URL 全部为 "domain.com/"后无需重新加载页面

标签 javascript jquery html pushstate

我的多级菜单片段

  • 仪表板-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/

相关文章:

java - 生成动态表以及动态单选按钮以进一步在 JSP 中生成动态表

javascript - <br> 当我 alert() PRE 标签的内容时被删除

javascript - 使用 V8 将 JavaScript 编译为原生代码

javascript - 如何引用远程 JS 文件路径

javascript - 无法在 .text() 内实现换行符 -\n 不起作用

javascript - 使用 angularJS Controller 生成下拉菜单

javascript - 动态生成列表上 'click' 上的 jQuery 返回 'an empty string'

c# - 普通 .NET Web 服务应用程序中 HTTP session 状态的替代方案

html - 样式表 CSS 和 HTML

html - 表单提交按钮 onClick JavaScript 函数