¿Cuál es la forma más fácil de leer / manipular los parámetros de cadena de consulta usando JavaScript?

StackOverflow https://stackoverflow.com/questions/150404

  •  02-07-2019
  •  | 
  •  

Pregunta

Los ejemplos que he visto en línea parecen mucho más complejos de lo que esperaba (analizando manualmente & amp; /? / = en pares, usando expresiones regulares, etc.). Estamos usando asp.net ajax (no veo nada en su referencia del lado del cliente) y consideraría agregar jQuery si realmente ayudara.

Creo que hay una solución más elegante, hasta ahora este es el mejor código que he encontrado pero me encantaría encontrar algo más en la línea del objeto HttpRequest.QueryString (lado del servidor asp.net) . Gracias de antemano,

Shane

¿Fue útil?

Solución

De hecho, hay un QueryString plugin para jQuery, si está dispuesto a instalar el núcleo de jQuery y el complemento podría resultar útil.

Otros consejos

Estoy usando esta función en caso de que no quiera usar un complemento:

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 (pair[0] == variable) {
            return pair[1];
        }
    }
    return null;
}

Echa un vistazo a mi publicación, ya que te dice exactamente cómo hacer esto:

http://seattlesoftware.wordpress.com/2008/ 01/16 / javascript-query-string /

Para jQuery sugiero jQuery BBQ: Back Button & amp; Biblioteca de consultas Por " Cowboy " Ben Alman

  

jQuery BBQ aprovecha el HTML5   evento hashchange para permitir simple, pero   potente marcador de #hash historia.   Además, jQuery BBQ proporciona un   método completo .deparam (), junto con   tanto la gestión del estado hash, y   analizar / analizar cadenas de consulta y   fusionar métodos de utilidad.

Ejemplo:

// Parse URL, deserializing query string into an object.
// http://www.example.com/foo.php?a=1&b=2&c=hello#test
// search is set to ?a=1&b=2&c=hello
// myObj is set to { a:"1", b:"2", c:"hello" }
var search = window.location.search;
var myObj = $.deparam.querystring( search );

Use la utilidad String de prototypejs.org, llamada toQueryParams ().

Ejemplo de su sitio: http://prototypejs.org/api/string/toQueryParams

  

'section = blog & amp; id = 45'.toQueryParams ();
  // - > {section: 'blog', id: '45'}

  'section = blog; id = 45'.toQueryParams ();
  // - > {section: 'blog', id: '45'}

  ' http://www.example.com?section=blog&id=45#comments '.toQueryParams ();
  // - > {section: 'blog', id: '45'}

  'section = blog & amp; tag = javascript & amp; tag = prototype & amp; tag = doc'.toQueryParams ();
  // - > {section: 'blog', etiqueta: ['javascript', 'prototype', 'doc']}

  'tag = ruby% 20on% 20rails'.toQueryParams ();
  // - > {etiqueta: 'ruby on rails'}

  'id = 45 & amp; raw'.toQueryParams ();
  // - > {id: '45', raw: undefined}

Además, puede usar el alias parseQuery () para obtener los mismos resultados.

window.location.search.parseQuery();

Dado que window.location devuelve un objeto, debe obtener la cadena.

  *$(document).ready(function () {
            $("#a").click(function () {
                window.location.href = "secondpage.aspx?id='0' & name='sunil'& add='asr' & phone='1234'";
            });
        });*


**then read the query string parameters on another using split method . Here as follows:**


  *$(document).ready(function () {
            var a = decodeURI(window.location.search);
            var id = window.location.search = "id=" + $().val();
            var name = a.split("name=")[1].split("&")[0].split("'")[1];
            var phone = a.split("phone=")[1].split("&")[0].split("'")[1];
            var add = a.split("add=")[1].split("&")[0].split("'")[1];
            alert(id+','+name+','+add+','+phone); 
        });*

Si hay alguna posibilidad de encontrar parámetros repetidos (por ejemplo,? tag = foo & amp; tag = bar), la mayoría de las bibliotecas no serán suficientes. En ese caso, es posible que desee considerar esta biblioteca que desarrollé a partir del analizador muy completo de Jan Wolter. Agregué funciones .plus () y .minus () y viajes de ida y vuelta:

https://github.com/timmc/js- herramientas / blob / master / src / QueryString.js

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top