Last active
May 24, 2016 15:13
-
-
Save luccamendonca/895a5ba776cfa76afec0bd889e2852cf to your computer and use it in GitHub Desktop.
Some simple functions to manipulate URL params using JavaScript
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
function goTo(href) { | |
if (!href) { return false; } | |
return window.location.href = href; | |
} | |
function getUrlParam (key) { | |
var paramsAssoc = getUrlParamsAssoc(); | |
return (undefined == paramsAssoc[key]) ? null : paramsAssoc[key]; | |
}; | |
function addUrlParam (key, value) { | |
var paramsAssoc = getUrlParamsAssoc(); | |
paramsAssoc[key] = value; | |
return buildUrlViaParams(paramsAssoc); | |
}; | |
function removeUrlParam (key) { | |
var paramsAssoc = getUrlParamsAssoc(); | |
if (undefined != paramsAssoc[key]) { | |
delete paramsAssoc[key]; | |
} | |
return buildUrlViaParams(paramsAssoc); | |
}; | |
function buildUrlViaParams (paramsAssoc, urlObject) { | |
urlObject = (!urlObject) ? window.location : urlObject; | |
var params = []; | |
for (var key in paramsAssoc) { | |
params.push(key+'='+paramsAssoc[key]); | |
} | |
params = (0 < params.length) ? '?'+params.join('&') : ''; | |
return urlObject.origin + urlObject.pathname + params; | |
}; | |
function getUrlParamsAssoc (urlObject) { | |
urlObject = (!urlObject) ? window.location : urlObject; | |
if (!urlObject.search) { return {}; } | |
var params = urlObject.search.replace('?', '').split('&'); | |
var paramsAssoc = {}; | |
var split = []; | |
for (var i = params.length - 1; i >= 0; i--) { | |
split = params[i].split('='); | |
paramsAssoc[split[0]] = split[1]; | |
} | |
return paramsAssoc; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment