Cita:
Iniciado por el junco
En cuanto a que pasaría con foo=bar&o=object y quiero capturar el parámetro o, si que funciona, porque es precisamente lo que estoy haciendo, ya que estoy recuperando el segundo parametro.
¿supones, o lo comprobaste? a mi me devuelve
bar en lugar de
object.

en todo caso, lo haría de esta forma.
Código:
String.prototype.query = function(split, begin){
var split = split || ['&', '='], query = this, queryObj = {};
if(split.constructor != Array || split.length != 2)throw new TypeError('Excepted type of argument not valid or argument lenght size not allowed.');
if(begin)query = query.replace(begin, '');
query = query.split(split[0]);
while(query.length){
var pair = query.shift().split(split[1]);
if(pair[0] in queryObj){
if(queryObj[pair[0]].constructor != Array)queryObj[pair[0]] = new Array(queryObj[pair[0]]);
queryObj[pair[0]].push(decodeURIComponent(pair[1]));
}
else queryObj[pair[0]] = (pair[1])? decodeURIComponent(pair[1]): undefined;
}
return queryObj;
}
GET = 'foo=bar&o=object'.query();
GET['o']; // object;