a library to deal with url.
Download the script here and include it (unless you are packaging scripts somehow else):
<script src="/path/url-helper.js"></script>
e.g. http://test.example.com:8080/some/path => test.www.example.com:8080:
window.urlHelper.getHost([url]);
e.g. http://test.example.com:8080/some/path => test.www.example.com:
window.urlHelper.getHostname([url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => http
window.urlHelper.getProtocol([url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => /some/path
window.urlHelper.getPathName([url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => 8080
window.urlHelper.getPort([url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => a=b
window.urlHelper.getSearch([url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => c=d
window.urlHelper.getHashStr([url]);
e.g. c=d => http://test.example.com:8080/some/path?a=b#c=d
window.urlHelper.setHashStr(hash, [url]);
e.g. c, d => http://test.example.com:8080/some/path?a=b#c=d
window.urlHelper.setHash({c: d});
e.g. http://test.example.com:8080/some/path?a=b#c=d, c => d
window.urlHelper.getHash(key, [url]);
e.g. http://test.example.com:8080/some/path?a=b#c=d => {c: d}
window.urlHelper.getHashs([url]);
e.g. {c: d} => http://test.example.com:8080/some/path?a=b#c=d
window.urlHelper.setHashs({c: d});
e.g. c, http://test.example.com:8080/some/path?a=b#c=d => d
window.urlHelper.getQuery(key, [url]);
e.g. c, d, http://test.example.com:8080/some/path?a=b => http://test.example.com:8080/some/path?a=b&c=d
window.urlHelper.setQuery(key, value, [url]);
e.g. c, e, http://test.example.com:8080/some/path?a=b => http://test.example.com:8080/some/path?a=b&c=e
window.urlHelper.replaceQuery(key, value, [url]);
e.g. c, http://test.example.com:8080/some/path?a=b => http://test.example.com:8080/some/path?a=b
window.urlHelper.removeQuery(key, [url]);
IMPORTANT! [url] means it can be null