Was ist der einfachste Weg, Abfragezeichenfolgenparameter mit Javascript zu lesen/zu bearbeiten?
-
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
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