Was ist der einfachste Weg, Abfragezeichenfolgenparameter mit Javascript zu lesen/zu bearbeiten?

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

  •  02-07-2019
  •  | 
  •  

Frage

Die Beispiele, die ich online gesehen habe, scheinen viel komplexer zu sein, als ich erwartet hatte (manuelles Parsen von &/?/= in Paare, Verwendung regulärer Ausdrücke usw.). Wir verwenden asp.net Ajax (in der clientseitigen Referenz ist nichts zu sehen) und würde darüber nachdenken, jQuery hinzuzufügen, wenn es wirklich helfen würde.

Ich denke, dass es da draußen eine elegantere Lösung gibt – bis jetzt Das ist der beste Code, den ich gefunden habe aber ich würde gerne etwas mehr in der Art des HttpRequest.QueryString-Objekts finden (asp.net-Serverseite).Dank im Voraus,

Shane

War es hilfreich?

Lösung

Es ist in der Tat eine Abfrage-Zeichenfolge-Plugin für jQuery, wenn Sie bereit sind, zu installieren der jQuery-Kern und das Plugin könnte es nützlich sein.

Andere Tipps

Ich bin mit dieser Funktion, falls ich möchte nicht ein Plugin verwenden:

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

Werfen Sie einen Blick auf meinem Posten, wie es Ihnen genau sagt, wie dies zu tun:

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

Für jQuery Ich schlage vor, jQuery BBQ: Zurück Button & Abfrage Bibliothek Unter " Cowboy“Ben Alman

  

jQuery BBQ nutzt die HTML5   hashchange Ereignis einfach zu erlauben, noch   leistungsstarke Lesezeichen erstellt #hash Geschichte.   Darüber hinaus bietet jQuery BBQ ein   Voll .deparam () Methode, zusammen mit   beide Hash-Zustandsverwaltung und   Fragment / Query-String-Parsing und   fusionieren Hilfsmethoden.

Beispiel:

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

Verwenden Sie das String-Dienstprogramm von Prototypjs.org mit dem Namen toQueryParams().

Beispiel von ihrer Website: http://prototypejs.org/api/string/toQueryParams

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

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

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

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

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

'id=45&raw'.toQueryParams();
// -> {id:'45', roh:nicht definiert}

Sie können auch den Alias ​​parseQuery() verwenden, um dieselben Ergebnisse zu erhalten.

window.location.search.parseQuery();

Da window.location ein Objekt zurückgibt, müssen Sie die Zeichenfolge abrufen.

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

Wenn es irgendeine Möglichkeit der wiederholten Parameter zu begegnen (z? Tag = foo & tag = bar), die meisten Bibliotheken da draußen nicht ausreichen werden. In diesem Fall sollten Sie diese Bibliothek betrachten, die ich von Jan Wolter rel="nofollow">. Ich fügte hinzu, .plus () und .minus () Funktionen und Roundtripping:

https://github.com/timmc/js- Werkzeuge / Blob / Master / src / QueryString.js

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top