Quel est le moyen le plus simple de lire / manipuler des paramètres de chaîne de requête à l'aide de javascript?

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

  •  02-07-2019
  •  | 
  •  

Question

Les exemples que j'ai vus en ligne semblent beaucoup plus complexes que ce à quoi je m'attendais (analyser manuellement & amp; /? / = par paires, à l'aide d'expressions régulières, etc.). Nous utilisons asp.net ajax (ne voit rien dans la référence côté client) et envisagerait d’ajouter jQuery si cela peut vraiment aider.

Je pense qu’il existe déjà une solution plus élégante - c'est le meilleur code que j'ai trouvé , mais j'aimerais trouver quelque chose de plus similaire à l'objet HttpRequest.QueryString (côté serveur asp.net) . Merci d'avance,

Shane

Était-ce utile?

La solution

Il existe en effet un plug-in QueryString pour jQuery, si vous souhaitez installer le noyau jQuery et le plugin pourraient s’avérer utiles.

Autres conseils

J'utilise cette fonction au cas où je ne voudrais pas utiliser de 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;
}

Jetez un coup d'œil à mon message car il vous explique exactement comment procéder:

http://seattlesoftware.wordpress.com/2008/ 01/16 / chaîne de requête javascript /

Pour jQuery, je suggère BBQ jQuery: bouton Précédent & amp; Bibliothèque de requêtes Par " Cowboy " Ben Alman

  

jQuery BBQ exploite le HTML5   événement hashchange pour permettre simple, mais   historique marquable #hash à marquer.   En outre, jQuery BBQ fournit une   méthode complète .deparam (), avec   à la fois la gestion d'état de hachage, et   fragmenter / interroger la chaîne et   fusionner les méthodes utilitaires.

Exemple:

// 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 );

Utilisez l'utilitaire String de prototypejs.org, appelé toQueryParams ().

Exemple tiré de leur site: 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', tag: ['javascript', 'prototype', 'doc']}}

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

  'id = 45 & amp' raw'.toQueryParams ();
  // - > {id: '45', raw: non défini}

Vous pouvez également utiliser l'alias parseQuery () pour obtenir les mêmes résultats.

window.location.search.parseQuery();

Comme window.location renvoie un objet, vous devez obtenir la chaîne.

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

S'il est possible de rencontrer des paramètres répétés (par exemple,? tag = foo & tag = bar), la plupart des bibliothèques existantes ne seront pas suffisantes. Dans ce cas, vous voudrez peut-être prendre en compte cette bibliothèque que j'ai développée à partir de analyseur très complet de Jan Wolter. J'ai ajouté les fonctions .plus () et .minus () et arrondi:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top