Recuperar parametros URL con Javascript

Este es un interesante tip para recuperar los parametros de una peticion URL con javascript. ¿Y para que me puede servir?. Bueno, por ejemplo podrias implementar un pseudo-servidor en una pagina HTML que te devolviera una respuesta u otra en función de algun parametro recibido (p.ej para probar algun desarrollo en local o extension de Chrome sin necesidad de utilizar un servidor real). El tema es analizar la cadena del queryString, sin más dejo el ejemplo (hasta 3 funciones diferentes):


<SCRIPT>

// Ejemplo de pseudo server en pagina HTML

//METODO 1
function queryString( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

//METODO 2
function queryString2(parameter) {
  var loc = location.search.substring(1, location.search.length);
  var param_value = false;
  var params = loc.split("&");
  for (i=0; i<params.length;i++) {
      param_name = params[i].substring(0,params[i].indexOf('='));
      if (param_name == parameter) {
          param_value = params[i].substring(params[i].indexOf('=')+1)
      }
  }
  if (param_value) {
      return param_value;
  }
  else {
      return false; //Here determine return if no parameter is found
  }
}

//METODO 3
function getParameter3 ( queryString, parameterName ) {
   // Add "=" to the parameter name (i.e. parameterName=value)
   var parameterName = parameterName + "=";
   if ( queryString.length > 0 ) {
      // Find the beginning of the string
      begin = queryString.indexOf ( parameterName );
      // If the parameter name is not found, skip it, otherwise return the value
      if ( begin != -1 ) {
         // Add the length (integer) to the beginning
         begin += parameterName.length;
         // Multiple parameters are separated by the "&" sign
         end = queryString.indexOf ( "&" , begin );
      if ( end == -1 ) {
         end = queryString.length
      }
      // Return the string
      return unescape ( queryString.substring ( begin, end ) );
   }
   // Return "null" if no parameter has been found
   return "null";
   }
}

function json01()
{
document.write("{'id'='1','data'='pagina1'}");
}

function json02()
{
document.write("{'id'='2','data'='pagina2'}");
}

// buscamos por parametro "q"
var pagina=queryString2("q");
// si q=1 devolver json 01
if (pagina=="1") json01();
// si q=2 devolver json 02
if (pagina=="2") json02();

// Ejemplo de uso: file:///home/jose/Escritorio/server.html?q=2

</SCRIPT>

Aunque me gusta más esta implementación basada en Jquery en la que se amplia la libreria con las nuevas funciones:


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<SCRIPT>
$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

// Get object of URL parameters
var allVars = $.getUrlVars();

// Getting URL var by its nam
var byName = $.getUrlVar('q');
alert("parametro q es:"+byName);

</SCRIPT>

Referencias | Jquery Howto | Web Borg | Net Lobo | The Pothoven

1 Response to “Recuperar parametros URL con Javascript”



  1. 1 Recuperar parametros URL con Javascript | Ayuda Linux Trackback en julio 1, 2010 en 2:17 am

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s





The next version of Ubuntu is coming soon


¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
junio 2010
L M X J V S D
« may   jul »
 123456
78910111213
14151617181920
21222324252627
282930  

Blog Stats

  • 27,077,886 hits

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.046 seguidores

A %d blogueros les gusta esto: