Obtener parametros get desde javascript

Para poder obtener todos los parámetros get desde Javascipt, utilicé un fragmento de código tomado desde

http://code-tricks.com/get-url-parameters-using-javascript/

Pero tiene el inconveniente de que si seguido del signo igual, tiene otro igual, entonces regresa un campo vacío y malforma el campo original. Por ejemplo.

?campo1=texto1&campo2=texto2&campo3====texto3

Los parámetros deberían ser 3: campo1, campo2 y campo3, y los valores tendrían que ser respectivamente: texto1, text2 t ===texto3.

Pero el código original de “Tirumal” no puede regresar el parámetro de campo3 como “===texto3”, sino que al encontrar un signo de igual seguido de otro, lo interpreta como parámetro nulo.

Es por ello que hice la respectiva correción, dando soporte para regresar el parámetro correctamente, sin importar que tenga el signo de igual, seguido de otros; se reconoce como un campo correctamente.

El código es el siguiente

function getUrlParameters(parameter, staticURL, decode){
/*
Function: getUrlParameters
Description: Get the value of URL parameters either from current URL or static URL
Author: Tirumal
URL: www.code-tricks.com
Corregido por: Angelinux
*/
var currLocation = (staticURL.length)? staticURL : window.location.search,
parArr = currLocation.split("?")[1].split("&"),
returnBool = true;

for(var i = 0; i < parArr.length; i++){
parr = parArr[i].split("=");
if(parr[0] == parameter){
returnBool = true;
parrInd = parArr[i].indexOf("=");
return (decode) ? decodeURIComponent(parArr[i].substring(parrInd + 1)) : parArr[i].substring(parrInd + 1);
}else{
returnBool = false;
}
}

if(!returnBool) return false;
}

El modo de uso es igual que el original.

var idParameter = getUrlParameters("id", "", true);

Y

var idParameter = getUrlParameters("id", "http://www.example.com?id=1234&auth=true", true);

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

Deja un comentario