JSFiddle - React, Tailwind, and code Playground
Query String Parameters. Adding a "params" object onto the built-in location object.
by MoonScript
HTML
<form id="add-param">
<input type="text" id="param-name"/>
<input type="submit" value="Add Parameter"/>
</form>
<ol id="params"></ol>
JavaScript
var data = {};
data.navigator = navigator;
data.location = location;
data.location.params = {};
if (location.search) {
var params = location.search.substr(1).split('&');
var totalParams = params.length;
for (var z=0;z<totalParams;z++) {
(function(paramPair){
var nv = paramPair.split('=');
var paramName = decodeURIComponent(nv[0]);
var paramValue = decodeURIComponent(nv[1]);
var existingValue = data.location.params[paramName];
if (existingValue === undefined) {
data.location.params[paramName] = paramValue;
} else if (existingValue.constructor === Array) {
data.location.params[paramName].push(paramValue);
} else {
// Turn multiple of the same name into an array
data.location.params[paramName] = [existingValue, paramValue];
}
})(params[z]);
}
}
$('#add-param').submit(function(){
var paramName = $('#param-name').val();
if (paramName) {
var paramVal = data.location.params[paramName];
if (paramVal !== undefined && paramVal.constructor === Array) {
paramVal = '[' + paramVal.join(',') + ']';
}
var paramText = '<li>' + paramName + ': ' + paramVal + '</li>';
$('#params').append(paramText);
}
return false;
});