Leer parámetros desde la URL en JavaScript

Normalmente se suelen mandar parámetros desde un formulario en HTML / XHTML a un script escrito en un lenguaje de lado de servidor (JSP, PHP, ASP, …), pero en alguna ocasión tendremos que llamar a un HTML / XHTML pasándole parámetros por URL (es decir, los parámetros son enviados usando el método GET).

En JavaScript podemos recurrir al objeto del navegador location y a su método search. Si una URL con parámetros tiene la forma:

http://elbitcampeador.wordpress.com?parametro1=valor1&parametro2=valor2

Para esta URL, el método location.search devuelve la cadena:

?parametro1=valor1&parametro2=valor2

Donde cada parámetro está separado por el caracter &, y para cada párametro se usa el carácter = para separar el nombre del valor.

A continuación pongo un ejemplo completo de lectura de parámetros desde URL usando JavaScript, y usar dos parámetros en concreto (uno llamado ancho y otro alto) para hacer un recuadro con esas dimensiones.

index.html



   Leer parámetros desde JavaScript
<script type="text/javascript" src="script.js"></script>


 La URL es:
 El valor del parámetro ANCHO es:
 El valor del parámetro ALTO es:


script.js

function Init(){
	var url = String(window.location.href);
	var params = String(window.location.search);
	var aux1 = new Array();
	var aux2 = new Array();
	var cont = 0;
	var tot = 0;

	//si hay parametros
	if (params.length > 0){
		//eliminamos el primer caracter '?'
		params = params.substr(1);

		//insertamos en un array las parejas nombre=valor
		aux1 = params.split("&");
		tot = aux1.length;
		for (cont = 0; cont < tot; cont++){
			//separo el nombre del valor
			aux2 = aux1[cont].split("=");

			//trabajo con cada parámetro
			if (aux2[0].toLowerCase() == "ancho"){
				document.getElementById("ancho").innerHTML = aux2[1];
				document.getElementById("cuadro").style.width = aux2[1];
			}
			else if (aux2[0].toLowerCase() == "alto"){
				document.getElementById("alto").innerHTML = aux2[1];
				document.getElementById("cuadro").style.height = aux2[1];
			}

		}

	}
	else{
		alert("No hay parámetros en la URL");
	}

	document.getElementById("url").innerHTML = url;
}

8 Respuestas a Leer parámetros desde la URL en JavaScript

  1. Nacho dice:

    Despues de muchas pruebas no consegui que funcionara con javascript, lo he hecho al final con php que es muchisimo mas facil por lo que he visto. Solo con añadir donde queramos de nuestro codigo sale andando sin mayores problems!!

  2. Nacho dice:

    Esta bien esto…

    lo que se come despues de añadir es php echo $_GET['ancho'];
    con sus correspondientes <? y al contrario al final obviamente.

  3. Gladys dice:

    A mi tampoco me funcionaba pero reemplacé el
    por y anduvo perfecto.
    Después de usar ASP/JavaScript/MySQL ahora me siento perdida sin mi Request.QueryString !!! Gracias por el código !

  4. Gladys dice:

    Lo siento, no salio el texto completo … lo que reemplacé es el BODY por BODY ONLOAD=”Init();”

  5. Anonimus dice:

    Gracias, funcionó perfectamente

  6. anonimo dice:

    ¡Funciona! ¡Gracias.!
    Justo lo que necesitaba para no tener que utilizar PHP para evaluar los parametros recibidos.
    Obs.
    “index.js” != “script.js”

  7. toWerS dice:

    ¡Gracias por la observación! … ya está corregido :)

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.