これが私が持っているものです
if(condition1) {
location.href = location.href+'/?site_type=normal';
}
else if(condition2) {
location.href = location.href+'/?site_type=other';
}
もちろん、location.hrefにすでにクエリ変数が含まれている場合は、それが問題になります。
する必要がある
- クエリ文字列から変数を検索します
- site_typeがすでに存在する場合は、値を「normal」または「other」に置き換えます。
- 新しいsite_typeでURLを再構築します
編集:私はすべての種類のURLを説明する必要があることがわかりました:
- domain.com
- domain.com/path/to/sth/
- domain.com/?site_type=normal
- domain.com?var = 123&foo = 987
- domain.com/path/?site_type=normal&var=123&foo=987
だから、これが私が思いついたものです、提案は歓迎します:
var searchstring = window.location.search;
var url = window.location.href;
console.log('search: ' + searchstring);
console.log( 'url: ' + url);
// strip search from url
url = url.replace(searchstring,"");
console.log( 'url: ' + url);
//strip site_type from search
searchstring = searchstring.replace("&site_type=normal","")
.replace("&site_type=other","")
.replace("?site_type=normal","")
.replace("?site_type=other","")
.replace("?","")
;
console.log('search: ' + searchstring);
if(searchstring != ''){searchstring = '&' + searchstring;}
var final = url + '?site_type=normal' + searchstring;
final = final.replace("&&","&");
console.log('final: ' + final);