Last active
May 15, 2020 00:15
-
-
Save JoelLisenby/d47ced10eabfd83b03c3745e215f098e to your computer and use it in GitHub Desktop.
Add/update or Remove URL parameters from the provided URL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* getUrlWithParams() | |
* Add/update or remove url parameters from the provided url. | |
* Example: getUrlWithParams({'tab':tab_name},['remove']); | |
*/ | |
var getUrlWithParams = function(url, add_update, remove = []) { | |
var url = new URL(url); | |
var splita = url.search.substr(1).split('&'); | |
var params = {}; | |
var merged = {}; | |
for(var i in splita) { | |
var splitb = splita[i].split('='); | |
params[splitb[0]] = splitb[1]; | |
} | |
for(var i in params) { | |
if(Array.isArray(remove) && remove.indexOf(i) == -1) { | |
merged[i] = params[i]; | |
} | |
} | |
for(var i in add_update) { | |
merged[i] = add_update[i]; | |
} | |
output = url.origin + url.pathname + (merged.length > 0 ? '?' : ''); | |
var cnt = 0; | |
for(var i in merged) { | |
if(i != '') { | |
output += (cnt == 0 ? '?' : '&') + i +'='+ merged[i]; | |
cnt++; | |
} | |
} | |
return output + url.hash; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment