window.location.href 未被修改

window.location.href is not being modified

我有以下代码

    var windowHref = window.location.href;
    if (windowHref.includes('/project/')) {
        var splitURL = windowHref.split('/');
        window.location.href = windowHref.substring(0, windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2];
    }
    window.location.reload(true);

执行上述代码前,window.location.href的值为

https://localhost:44301/default.aspx#/project/16a76abd-5b5b-4c63-822f-2bfd7f133adc/home

执行后,我希望它的值像

https://localhost:44301/default.aspx?projectId=16a76abd-5b5b-4c63-822f-2bfd7f133adc

但是当行

window.location.href = windowHref.substring(0,windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2];

被执行,window.location.href保持不变。

以及

的结果

windowHref.substring(0,windowHref.indexOf('#/project')) + '?projectId=' + splitURL[splitURL.length - 2];

https://localhost:44301/default.aspx?projectId=16a76abd-5b5b-4c63-822f-2bfd7f133adc

我做错了什么?

我建议删除行 window.location.reload(true); 因为在使用 window.location.href

时不需要将客户端重定向到新页面
var href =  window.location.href; 
var index = href.indexOf('#/project/');
if(index!==-1){  
   var splitURL = href.substring(index,href.length).replace('#/project/','?projectId=').split('/');
   window.location.href = splitURL[0];
}