Last active
November 26, 2017 10:25
-
-
Save envil/bc1832503bef55ffdabb0cde32bb06f1 to your computer and use it in GitHub Desktop.
Util function that can append/delete a param in a query string. (pass in 1 param to delete that param)
This file contains hidden or 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
function AlterQueryString(param, val) { | |
var queryString = window.location.search.replace("?", ""); | |
var parameterListRaw = queryString == "" ? [] : queryString.split("&"); | |
var parameterList = {}; | |
for (var i = 0; i < parameterListRaw.length; i++) { | |
var parameter = parameterListRaw[i].split("="); | |
if (typeof val != 'undefined') { | |
parameterList[parameter[0]] = parameter[1]; | |
} else if (param != parameter[0]) { | |
parameterList[parameter[0]] = parameter[1]; | |
} | |
} | |
if (typeof val != 'undefined') { | |
parameterList[param] = val; | |
} | |
var newQueryString = Object.keys(parameterList).length > 0 ? "?" : ""; | |
for (var item in parameterList) { | |
if (parameterList.hasOwnProperty(item)) { | |
newQueryString += item + "=" + parameterList[item] + "&"; | |
} | |
} | |
newQueryString = newQueryString.replace(/&$/, ""); | |
return location.origin + location.pathname + newQueryString; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment