Preparation Code Preparation HTML (this will be inserted in the <body>
of a valid HTML5 document in standards mode) (useful when testing DOM operations or including libraries) <script >
var query = "q=my+search+query&value=7&foo=&bar=hello&bar=world#fragment" ;
window .getParams1 = function (q ) {
return (function (a ) {
if (a == "" ) return {};
var b = {};
for (var i = 0 ; i < a.length ; ++i) {
var p = a[i].split ('=' );
if (p.length != 2 ) continue ;
b[p[0 ]] = decodeURIComponent (p[1 ].replace (/\+/g , " " ));
}
return b;
})(q.split ("&" ));
};
var pl = /\+/g ,
search = /([^&=]+)=?([^&]*)/g ;
window .getParams2 = function ( ) {
var match,
decode = function (s ) { return decodeURIComponent (s.replace (pl, " " )); };
var urlParams = {};
while (match = search.exec (query))
urlParams[decode (match[1 ])] = decode (match[2 ]);
return urlParams;
};
window .getParams3 = function (qsRAW ) {
if (!qsRAW) return {};
var qs = {};
var qsLen = qsRAW.length ;
var curKey = "" ;
var curVal = "" ;
var compilingKey = true ;
for (var i = 0 ; i < qsLen; i++) {
var char = qsRAW[i];
if (char === "=" && i !== 0 && compilingKey === true ) {
compilingKey = false ;
} else if (char === "&" || char === ";" || i === qsLen-1 ) {
var decodedCurVal = decodeURIComponent (curVal);
if (curKey.slice (-2 ) === "[]" ) curKey = curKey.slice (0 ,-2 );
if (typeof qs[curKey] !== "undefined" ) {
if (typeof qs[curKey] === "string" ) {
var tmpVal = qs[curKey];
qs[curKey] = new Array ();
qs[curKey].push (tmpVal);
};
qs[curKey].push (decodedCurVal);
} else {
qs[curKey] = decodedCurVal;
}
curKey = "" ;
curVal = "" ;
compilingKey = true ;
} else {
if (compilingKey) {
curKey += char;
} else {
curVal += char;
}
}
}
return qs;
};
window .getParams4 = function (s ) {
var obj = {}, isKey = true , key = '' , val = '' , chr;
for (var i=0 , l=s.length ; i<l; i++){
chr = s[i];
if (chr === '=' ) {
isKey = false ;
continue ;
} else if (chr === '&' ) {
isKey = true ;
obj[key] = decodeURIComponent (val);
key = '' ;
val = '' ;
continue ;
} else if (chr === '#' ) {
break ;
} else if (chr === '?' ) {
continue ;
}
if (isKey){
key += chr;
} else {
val += chr;
}
}
if (key !== '' ){
obj[key] = decodeURIComponent (val);
}
return obj;
};
function getQueryString (url ) {
var qs = {};
qs = (function (a ) {
var b = {},
c;
for (var i = 0 ; i < a.length ; i++) {
c = a[i].split ("=" );
b[decodeURIComponent (c[0 ])] = decodeURIComponent (c[1 ]);
}
return b;
}) (url.split ("&" ));
return qs;
}
</script >
Setup JS
Teardown JS