Skip to content

Instantly share code, notes, and snippets.

@PseudoNinja
Forked from jlong/uri.js
Last active August 29, 2015 14:13
Show Gist options
  • Save PseudoNinja/fb4a274bb2d5ead05d1b to your computer and use it in GitHub Desktop.
Save PseudoNinja/fb4a274bb2d5ead05d1b to your computer and use it in GitHub Desktop.
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
(function(){
parser.isLocal = (window.location.host === parser.host) ? true : false; // determine if is local url
parser.fullPath = parser.host + parser.pathname + parser.hash;
parser.params = {};
// Convert query string to object
var split,
queries = parser.search.replace(/^\?/, '').split('&')
;
for (i = 0; i < queries.length; i++) {
split = queries[i].split('=');
parser.params[split[0]] = split[1];
}
})();
//parser.protocol; // => "http:"
//parser.hostname; // => "example.com"
//parser.port; // => "3000"
//parser.pathname; // => "/pathname/"
//parser.search; // => "?search=test"
//parser.hash; // => "#hash"
//parser.host; // => "example.com:3000"
//parser.fullPath; // => "example.com:3000/pathname/#hash"
//parser.isLocal; // => false
//parser.params; // => [object Object] { search: "test" }
@PseudoNinja
Copy link
Author

Added support for parameters object and isLocal detection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment