Javascript 替换部分窗口路径名

Javascript 替换部分窗口路径名,javascript,jquery,regex,Javascript,Jquery,Regex,我创建了一个函数,每当用户单击新视频时(无需重新加载),该函数都会更新窗口位置。我遇到的问题是,我的函数不能正常工作,因为当我第一次更改URL时,它使用的是我刚刚更改的URL,而不是附加ID 例如,当页面第一次加载时,它启动此功能并生成正确的URLexample.com/123,但每当有人单击另一个视频而不是用新ID替换123时,它就会添加到该视频中,使其成为example.com/123678 function updatePath(uuid, title) { if (history

我创建了一个函数,每当用户单击新视频时(无需重新加载),该函数都会更新窗口位置。我遇到的问题是,我的函数不能正常工作,因为当我第一次更改URL时,它使用的是我刚刚更改的URL,而不是附加ID

例如,当页面第一次加载时,它启动此功能并生成正确的URL
example.com/123
,但每当有人单击另一个视频而不是用新ID替换123时,它就会添加到该视频中,使其成为
example.com/123678

function updatePath(uuid, title) {
    if (history.pushState) {
    var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + uuid;
    window.history.pushState({path:newurl},'',newurl);
    document.title = title + '- Video';
  }
}

如何更新此函数以使其可重用,并替换URL的正确部分?最初我使用的是查询参数,效果很好,但我相信
window.location.pathname
每次运行时都在更新,因此没有正确替换它。

只需获取路径名的目录部分并附加新ID。您正在将新ID附加到整个路径名。为什么不使用
哈希
mysupervidz.com#123
或查询字符串,如
?v=123
@RokoC.Buljan他提到他最初使用的是查询参数。请参阅@RokoC.Buljan,它不适合此应用程序。我不得不改变使用它们,因为它会引起问题。