Qual é a maneira mais fácil de ler / manipular consulta params string usando javascript?

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Os exemplos que eu vi on-line parece muito mais complexo do que eu esperava (analisar manualmente e /? / = Em pares, usando expressões regulares, etc). Estamos usando asp.net ajax (não vejo nada em sua referência do lado do cliente) e iria considerar a adição de jQuery se ele seria realmente ajudar.

Eu acho que há uma solução mais elegante lá fora - até agora este é o melhor código que eu encontrei mas eu gostaria de encontrar algo mais ao longo das linhas do objeto HttpRequest.QueryString (lado do servidor asp.net) . Agradecemos antecipadamente,

Shane

Foi útil?

Solução

Há de fato uma QueryString plug-in para jQuery, se você estiver disposto a instalar o núcleo jQuery e o plugin que poderia ser útil.

Outras dicas

Eu estou usando esta função no caso eu não quero usar um plugin:

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;
}

Dê uma olhada no meu post, uma vez que lhe diz exatamente como fazer isso:

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

Para jQuery sugiro jQuery BBQ: Back Button & Biblioteca de Consulta por " cowboy" Ben Alman

jQuery churrasco aproveita o HTML5 hashchange evento para permitir que simples, mas poderosa história #hash bookmarkable. Além disso, proporciona um jQuery churrasco .deparam cheio () método, juntamente com tanto o gerenciamento de estado de hash, e fragmento / query string de análise e métodos utilitários mesclagem.

Exemplo:

// 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 o utilitário de Cordas de prototypejs.org, chamados toQueryParams ().

Exemplo de seu site: http://prototypejs.org/api/string/toQueryParams

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

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

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

'Section = blogue & tag = javascript & tag = protótipo & tag = doc'.toQueryParams ();
// -> {section: 'blog', tag: [ 'javascript', 'protótipo', 'doc']}

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

'Id = 45 & raw'.toQueryParams ();
// -> {id: '45', cru: indefinido}

Além disso, você pode usar o parseQuery apelido () para obter os mesmos resultados.

window.location.search.parseQuery();

Desde window.location retorna um objeto, você deve obter a cadeia.

  *$(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); 
        });*

Se houver qualquer possibilidade de encontrar parâmetros repetidos (por exemplo? Tag = foo & tag = bar), a maioria das bibliotecas lá fora, não será suficiente. Nesse caso, você pode querer considerar esta biblioteca que eu desenvolvido a partir de Janeiro Wolter muito abrangente analisador . Eu adicionei .mais () e .minus () funções e roundtrip:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top