尝试重定向到同一页面但具有查询字符串值

时间:2017-04-07 03:12:57

标签: javascript

我想重定向到同一页面,但添加了一些查询字符串值。

如果已存在查询字符串值,我想将其删除并添加一个新值。

我的代码目前没有工作,不知道为什么:

var url = window.location.href;
if(url.indexOf("?") > 0) {
  url = url.substring(0, url.indexOf("?"));
} else {
    url += "?joined=true";
}
window.location.replace(url);

2 个答案:

答案 0 :(得分:4)

问题在于,当您剥离旧查询字符串时,您不会添加新查询字符串,只有在else子句中没有旧查询字符串时才会添加。从else开始添加,所以你要一直这样做。

var url = window.location.href;
if(url.indexOf("?") > 0) {
  url = url.substring(0, url.indexOf("?"));
} 
url += "?joined=true";
window.location.replace(url);

答案 1 :(得分:0)

最好使用已经可用的URL API。

var url = new URL(window.location.href);
url.searchParams.set('joined', true);
window.location.replace(url.toString());

您可以查看以下链接以了解详情: