47 lines
1.5 KiB
JavaScript
Executable File
47 lines
1.5 KiB
JavaScript
Executable File
/**
|
|
* Copyright (c) 2010 Conrad Irwin <conrad@rapportive.com> MIT license.
|
|
* Based loosely on original: Copyright (c) 2008 mkmanning MIT license.
|
|
*
|
|
* Parses CGI query strings into javascript objects.
|
|
*
|
|
* See the README for details.
|
|
**/
|
|
define([
|
|
"jquery"
|
|
], function($){
|
|
$.parseQuery = function (options) {
|
|
|
|
var config = {query: window.location.search || ""},
|
|
params = {};
|
|
|
|
if (typeof options === 'string') {
|
|
options = {query: options};
|
|
}
|
|
$.extend(config, $.parseQuery, options);
|
|
config.query = config.query.replace(/^\?/, '');
|
|
|
|
if (config.query.length > 0) {
|
|
$.each(config.query.split(config.separator), function (i, param) {
|
|
var pair = param.split('='),
|
|
key = config.decode(pair.shift(), null).toString(),
|
|
value = config.decode(pair.length ? pair.join('=') : null, key);
|
|
|
|
if (config.array_keys.test ? config.array_keys.test(key) : config.array_keys(key)) {
|
|
params[key] = params[key] || [];
|
|
params[key].push(value);
|
|
} else {
|
|
params[key] = value;
|
|
}
|
|
});
|
|
}
|
|
return params;
|
|
};
|
|
$.parseQuery.decode = $.parseQuery.default_decode = function (string) {
|
|
return decodeURIComponent((string || "").replace(/\+/g, ' '));
|
|
};
|
|
$.parseQuery.array_keys = function () {
|
|
return false;
|
|
};
|
|
$.parseQuery.separator = "&";
|
|
});
|