JSFiddle - React, Tailwind, and code Playground
by uzna
JavaScript
//window.location.href is messed up on jsfiddle so in this case i am using custom_url option
setUrlParameter({'pname': 'value', 'ok': 'cool'}, null, null, 'https://jsfiddle.net/');
function setUrlParameter(NameValuePairs, newTab = false, get_string = false, custom_url = false)
{
var url;
if(custom_url){
url = custom_url;
}else{
url = window.location.href;
}
var hash = location.hash;
url = url.replace(hash, '');
for(const ParamNameKey in NameValuePairs){
if(NameValuePairs.hasOwnProperty(ParamNameKey)){
let paramName = encodeURIComponent(ParamNameKey);
if (url.indexOf(paramName + "=") >= 0)
{
var prefix = url.substring(0, url.indexOf(paramName + "="));
var suffix = url.substring(url.indexOf(paramName + "="));
suffix = suffix.substring(suffix.indexOf("=") + 1);
suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
url = prefix + paramName + "=" + NameValuePairs[ParamNameKey] + suffix;
}
else
{
if (url.indexOf("?") < 0)
url += "?" + paramName + "=" + NameValuePairs[ParamNameKey];
else
url += "&" + paramName + "=" + NameValuePairs[ParamNameKey];
}
}
}
if(newTab == true){
window.open((url + hash), '_blank');
}else if(get_string === true){
return (url + hash);
}else{
console.log(url);
window.location.href = url + hash;
}
}