347 votos

Cadena de consulta Parse en JavaScript

Duplicar posibles:
¿Cómo puedo obtener los valores de cadena de consulta?

Tengo que analizar la cadena de consulta www.mysite.com/default.aspx?dest=aboutus.aspx . ¿Cómo puedo obtener el dest variable en JavaScript?

341voto

Tarik Puntos 16118

Aquí está una manera rápida y fácil de analizar cadenas de consulta en JavaScript:

 function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}
 

Ahora hacer una petición a page.html x = Hola?:

 console.log(getQueryVariable('x'));
 

Fuente: http://www.idealog.us/2006/06/javascript_to_p.html

167voto

function parseQuery(qstr)
{
  var query = {};
  var a = qstr.split('&');
  for (var i in a)
  {
    var b = a[i].split('=');
    query[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);
  }

  return query;
}

57voto

SalmanPK Puntos 6649

También puede utilizar el excelente URI.js biblioteca por Rodney Rehm . He aquí cómo: -

 var qs = URI('www.mysite.com/default.aspx?dest=aboutus.aspx').query(true); // == { dest : 'aboutus.aspx' }
    alert(qs.dest); // == aboutus.aspx
 

Y para analizar la cadena de consulta de la página actual: -

 var $_GET = URI(document.URL).query(true); // ala PHP
    alert($_GET['dest']); // == aboutus.aspx 
 

19voto

Henry Rusted Puntos 119

Aquí está mi versión basada libremente en la versión de Braceyard anterior, pero al analizar en un "diccionario" y soporte para argumentos de búsqueda sin '='. En uso en mi jQuery $ (document) .ready función (). Los argumentos se almacenan como pares de clave / valor en argsParsed, que es posible que desee guardar en algún lugar ...

 var args = document.location.search.substring(1).split('&');

argsParsed = {};

for (i=0; i < args.length; i++)
{
    arg = unescape(args[i]);

    if (arg.indexOf('=') == -1)
    {
        argsParsed[arg.trim()] = true;
    }
    else
    {
        kvp = arg.split('=');
        argsParsed[kvp[0].trim()] = kvp[1].trim();
    }
}
 

7voto

CB01 Puntos 112

Si usted sabe que usted sólo tendrá que una variable de cadena de consulta sólo tiene que hacer:

 var dest = location.search.replace(/^.*?\=/, '');
 

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X