我想重定向到同一页面,但添加了一些查询字符串值。
如果已存在查询字符串值,我想将其删除并添加一个新值。
我的代码目前没有工作,不知道为什么:
var url = window.location.href;
if(url.indexOf("?") > 0) {
url = url.substring(0, url.indexOf("?"));
} else {
url += "?joined=true";
}
window.location.replace(url);
答案 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());
您可以查看以下链接以了解详情: