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-us

Implementar la guía de estilo de dependencias de gobierno de México en WordPress
Comillas dentro de comillas dentro de comillas en javascript
Optimizar WordPress para una carga rápida con Autoptimize
Usar Google Chrome como apoyo para el desarrollo web
Validar HTML5 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);

COMMENTS

WORDPRESS: 0