Extending location object in javascript
Frank van der Linden
15 April 2010 20:01:02
For a project I needed some specific query string parameter. So I wrote some generic javascript code to extend the window.location object.
code
window.location.querystring = (function() {
// by Chris O'Brien, prettycode.org
var collection = {};
// Gets the query string, starts with '?'
var querystring = window.location.search;
// Empty if no query string
if (!querystring) {
return { toString: function() { return ""; } };
}
// Decode query string and remove '?'
querystring = decodeURI(querystring.substring(1));
querystring = querystring.replace('&','&')
// Load the key/values of the return collection
var pairs = querystring.split("&");
for (var i = 0; i < pairs.length; i++) {
// Empty pair (e.g. ?key=val&&key2=val2)
if (!pairs[i]) {
continue;
}
// Don't use split("=") in case value has "=" in it
var seperatorPosition = pairs[i].indexOf("=");
if (seperatorPosition == -1) {
collection[pairs[i]] = "";
}
else {
collection[pairs[i].substring(0, seperatorPosition)]
= pairs[i].substr(seperatorPosition + 1);
}
}
// toString() returns the key/value pairs concatenated
collection.toString function() {
return "?" + querystring;
};
return collection;
})();
to use this code
var param = window.location.querystring['url'];
- Comments [0]

