Paso de parametros en HTML con client-side Javascript |
|
|
Se trata de un sencillo script Javascript para recoger los parámetros que le llegan a una página.
El script siguiente se colocará "a pelo" en la página que debe de recibir los parametros, o podrá copiarse en un fichero .js vinculado. En ambos casos el código no debe estar en ninguna función, para que se ejecute siempre que se carga la página. Una vez se haya ejecutado el script tendremos los valores recibidos en las correspondientes variables. Aquellas que no hayamos recibido tendrán el valor por defecto que hamos fijado.
El Código:
<script language="javascript">
//Autor: Bruno Suárez Laffargue
//Version: 1.1
//Definimos las variables necesarias
variable=unValorPorDefecto;//Habrá que establecerlo
//Capturamos la URL
var callingURL = document.URL;
//Separamos los parametros
var cgiString = callingURL.substring(callingURL.indexOf('?')+1,callingURL.length);
//Fijamos el sepador entre parametros
var DELIMETER = '&';
//Eliminamos la almohadilla, si es que existe... cortamos por lo sano!
if (cgiString.indexOf('#')!=-1){
cgiString=cgiString.slice(0,cgiString.indexOf('#'));
}
//Troceamos el cgiString ya limpiado, separando cada par variable=valor
//en una de las posiciones del array
var arrayParams=cgiString.split(DELIMETER);
//Recorremos el array de parametros evaluando cada uno de los pares variable=valor
for (var i=0;i<arrayParams.length;i++){
eval(arrayParams[i].substring(0,arrayParams[i].indexOf('=')+1)+"\""+
arrayParams[i].substring(arrayParams[i].indexOf('=')+1,arrayParams
[i].length)+"\"");
}
</script>
Una de las restricciones funcionales para que esto funcione es tener tantas variables javascript definidas como parametros se van a recibir, inicializadas a un valor por defecto. Además estas variables han de llamarse exactamente igual que los parametros, ya que si no, no funciona. En ningún caso.
Bruno Suárez Laffargue
http://www.helloworldsolutions.com/
|