Qual é a maneira mais fácil de ler / manipular consulta params string usando javascript?
-
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
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