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(false);
}
Verwendung
Beispiel-URL
http://www.example.com/index.php?id=1&image=awesome.jpg
AufrufgetQueryVariable("id")– würde „1“ zurückgeben.
AufrufgetQueryVariable("image")– würde „awesome.jpg“ zurückgeben.
Requests = {
QueryString : function(item){
var svalue = location.search.match(new RegExp(“[\?\&]” + item + “=([^\&]*)(\&?)”,”i”));
return svalue ? svalue[1] : svalue;
}
}
//Verwendung
Requests.QueryString(“id”);
Tolles Snippet, aber bitte ändern Sie die geschwungenen Anführungszeichen in diesem in doppelte Anführungszeichen.
Tolles, prägnantes Snippet. Es hat dort funktioniert, wo ich es eingesetzt habe. Angesichts der Unwägbarkeiten von Daten im Web wird es zweifellos einige Grenzfälle geben, bei denen es fehlschlägt, aber bisher ist dieser 7½ Jahre alte Goldklumpen immer noch gut für uns!
nett! Danke.
Großartige Arbeit, das ist ein wirklich schönes Stück Code! Wie immer, weiter so!
Du hast Recht
Nett, sehr hilfreich, danke!!
Danke Chris, absolut nützliches Skript. Ich werde das heute noch verwenden :D
Schön!!!!!!!
Kann ich die .html-Erweiterung von meiner Website mit Windows-Hosting entfernen?
Ich weiß nicht, ob der Server Isapi_rewrite installiert hat.
Grüße
Ich denke, diese Zeile = return (false) würde einen Fehler verursachen, wenn Ihre URL mehr als eine Variable enthält. false kann eine Schleife unterbrechen und nur die erste Variable in Ihrer URL zurückgeben.
Ich denke, diese Zeile sollte entfernt werden.
Grüße,
Hinweis: Entschuldigen Sie mich, wenn ich falsch liege :)
Ich glaube, Sie lesen die Klammern falsch. Nachdem die for-Schleife alle
vars(Namens-Wert-Paare) durchsucht undvariablenicht gefunden hat, gibt diese Funktion false zurück.Großartig! Vielen Dank!
Hallo meine Freunde, entschuldigen Sie, wenn ich Englisch spreche, aber ich kann mich nicht auf Französisch ausdrücken, also
Ich habe das hier in einem Skript gefunden, das ich erstellt habe
page.html?nom=28/09/1986&from=hossa&too=hisok
und ich möchte den Namen der Variablen nom, from und too abrufen
Ich habe viele Skripte ausprobiert, aber sie funktionieren bei mir nicht.
Bitte sagen Sie mir, wie ich das in JavaScript mache
Vielen Dank
Ich glaube, das ist, worum es in diesem Beitrag geht.
Rufen Sie einfach die oben definierte Funktion auf.
getQueryVariable("nom");– würde „28/09/1986“ zurückgeben.getQueryVariable("from");– würde „hossa“ zurückgeben.getQueryVariable("too");– würde „hisok“ zurückgeben.Ich wollte das in CoffeeScript verwenden, wenn Sie das kopieren und einfügen möchten, hat es für mich funktioniert
getQueryVariable = (variable) ->
query = window.location.search.substring(1)
Tabs sind komplett durcheinander.
Habe eine weitere if-Anweisung hinzugefügt, um nach Leerzeichen „%20“ in den Parametern zu suchen.
}
Ups, ich habe ‘!= -1‘ vergessen. Entschuldigen Sie das. Hier ist der korrekte Code.
}
Hat jemand einen Link zu einem tatsächlichen Live-Formular, in dem so etwas implementiert wurde und das ich mir als Beispiel ansehen könnte? Entschuldigung, ich bin kein sehr erfahrener JavaScript-Entwickler und habe große Schwierigkeiten, dies einzurichten. Ich glaube, ich mache etwas grundlegend falsch, aber ich kann nicht herausfinden, was.
Hallo Kat. Ich habe einen Codepen mit dem obigen Code erstellt.
http://codepen.io/anon/pen/ympzk?fname=kat
Hallo Chris,
Die Parameter URL-dekodieren wäre notwendig, wenn ich mich nicht irre.
Schauen Sie sich diese Lösung hier an: http://stackoverflow.com/a/901144
Ich übergebe eine Abfrage über die URL (http://www.mywebsite.com/appointment-map.aspx?search=33612) und möchte dieses Abfrageobjekt im Folgenden (urlsearch) verwenden und es scheint nicht zu funktionieren.
Zusätzlich zu Roberts Galindos Code
Jetzt können wir weitere Daten nach dem ersten %20 abrufen, ich meine alle Daten mit Leerzeichen, wie
uri.html?data=more%20than%20one%20spaceIch habe diese Informationen bei stackoverflow.com über Geschwindigkeiten von "split" und "regex" gefunden.
Mit freundlichen Grüßen.
Außerdem, wie Relfor sagte, müssen wir mit decodeUriComponent keine Leerzeichen (%20) oder andere Symbole (wie Akzente) suchen. Weniger Codezeilen, bessere Ergebnisse.
Mit freundlichen Grüßen.
Funktioniert gut! Gott segne dich, mein Freund.
Ein funktionaler Ansatz (:P)
Noch besser, erledigen Sie die Arbeit nicht einmal für jeden Query-String-Parameter.
Wie wäre es, diese Funktion mit if/else zu kombinieren?
Beispiel
Sie haben diese URL
www.domain.com?id=1234&img=test.jpgBedingung
Wenn id=xxxx, dann mache blablabla, sonst anderes.
Welches Skript kann ich verwenden, um diese Bedingung zu deklarieren?
Bitte helfen Sie. Danke...
Ich brauche IHRE Hilfe, um die letzten 3 Zeichen in der URL zu überprüfen.
BEISPIEL
http://www.google.com
muss die letzten 3 Zeichen prüfen, die mit einem Punkt (.) beginnen.
BEISPIEL
http://www.domainname.xxx
Wenn die letzten 3 Zeichen falsch sind, sollte es zu einer Alarmmeldung-Seite weitergeleitet werden. Bitte helfen Sie mir.
Kann mir jemand bitte erklären, wie ich eine URL mit jQuery umschreiben kann?
Beschreibung
Ich möchte die URL umschreiben, indem ich den Ordnerpfad daraus entferne.
Derzeit verwende ich ASP.NET Routing, was ein kostspieliger Prozess ist, daher wäre es eine große Hilfe, wenn mir jemand eine Lösung dafür geben könnte.
Beispiel: products/cloths/jeans.aspx muss zu jeans.aspx umgeschrieben werden.
Vielen Dank im Voraus.
Habe den Originalcode implementiert und er gibt den Wert der URL-Variable zurück, wenn die Variable existiert, andernfalls gibt er false zurück. Das false, das zurückgegeben wird, wenn die Variable nicht existiert, ist kein String-Wert, sondern ich nehme an, ein JavaScript-Boolean? Meine Frage ist, wie kann ich auf die Rückgabe von false prüfen und dann eine Aktion ausführen? Ich möchte überprüfen, ob eine Auswahl getroffen wurde, die einen Wert im Query-String übergibt, und wenn nicht, dem Benutzer eine Nachricht geben. Danke für jede Hilfe.
Hallo Leute! Tolles Stück Code! Könnt ihr mir sagen, wie ich die aktuelle Tab-URL erhalte, wenn ich diesen Code auf einer Hintergrundseite ausführe? Habt ihr eine Idee, wenn ich diesen Code über das Kontextmenü aufrufen möchte?
Sie können ein Array von Elementen abrufen, die die Query-Parameter darstellen, mit
array = location.search.match(/\w+(.=)?\w*/gi)
Sie können etwas Ähnliches abrufen und es sehr einfach einem Objekt zuordnen.
[“app_id”, “123”, “appcode”, “123”]
Das ist vielleicht eine dumme Frage, aber mir fällt die Zeile
return (false)auf.Wie unterscheidet sich das vom üblicheren
return false(ohne Klammern)?Guter Code, aber er funktioniert nicht, wenn man nach dem ersten Element sucht.
Aufruf getQueryVariable(“id”) – sollte „1“ zurückgeben. Aber das tut er nicht.
Ich sollte das klarstellen. Ich habe die Funktion modifiziert, um einen URL-String zu übergeben.
function getQueryVariable(url, variable){
var query = url;
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(false);
}
Danke!!
Hier ist ein einfacher Regex-Code, den ich verwende.
Quelle: http://mycodingtricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/
Großartige Arbeit! Aber was ist, wenn ich einen Query-String wie in der folgenden URL habe?
Dies sendet „John“ anstelle des erwarteten „John & James“ .... Nur ein Gedanke.
Wenn Ihr Wert ein „&“ enthält, dann haben Sie einen fehlerhaften Wert. Sie müssen sie URL-codieren. In einer URL-Abfrage bedeutet „&“ den Beginn des nächsten Var.
Danke für Ihren hilfreichen Beitrag (
Was, wenn ich einen Standardwert zurückgeben möchte?
Zum Beispiel:
http://www.example.com/index.php?id=1&image=awesome.jpg
Aufruf getQueryVariable(“id”) – würde „1“ zurückgeben.
Aufruf getQueryVariable(“image”) – würde „awesome.jpg“ zurückgeben.
Was wäre, wenn
http://www.example.com/index.php
Ich möchte immer noch den Wert „id“ = „vordefinierter Wert“ zurückgeben.
Hallo,
Könnte mir jemand genau zeigen, wie ich das in HTML anwenden kann? Ich habe fast keine Erfahrung mit JS. Ich habe Dutzende von Iterationen ausprobiert und viele Websites durchsucht, und ich bin am Ende meiner Kräfte.
Mein Query-String am Ende der URL ist ?foo=jim. Ich habe die JS-Funktion im Head des Dokuments.
Ich benötige, dass 'jim' als Wert in ein verstecktes Eingabefeld eingefügt wird. Unten ist eine der vielen Iterationen, die ich versucht habe, um das zum Laufen zu bringen.
Kann mir jemand genau sagen, wo ich hier falsch liege?
Vielen Dank,
Amber
Hallo Amber,
Ich habe dasselbe Problem wie Sie in diesem Beitrag erwähnt haben, und ich frage mich, ob Sie bereits eine Lösung gefunden haben?
@joe – Ändern Sie einfach Ihre Zeile
var query = url; </div>zu
var query = url.split('?')[1];Dies trennt den Query-Teil der URL ab.
Großartig.
Ich hatte bereits eine YouTube-URL und benötigte nur die Video-ID.
Ich habe diese sehr schöne Lösung gefunden.
Erstellen Sie einen Link, setzen Sie href und jetzt können Sie auch 'location.search' verwenden.
Also habe ich das der obigen Funktion hinzugefügt.
Dies sollte auch in älteren Browsern funktionieren. Nicht von mir getestet, sollte aber bis IE 5.5 funktionieren.
Diese Technik gibt nur „false“ zurück, wenn sie genau wie beschrieben eingerichtet ist.
Link-Einrichtung: /test.html?id=1&image=awesome.jpg
Vielen Dank! Das ist großartig.
Das habe ich von MDN: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
window.location ist für Argumente in Tags nicht gesetzt.
Nehmen wir an, Sie müssen nur Argumente ohne Namen übergeben, wie bei Funktionsaufrufen.
In HTML
Dann, in JavaScript
Jetzt enthält args das Array [‘a’,’b’], unter der Annahme synchroner Skriptaufrufe.
Verwendung
URL = https://css-tricks.de/snippets/javascript/get-url-variables/?a=b&c=&d
urlParams() // {a: ‘b’, c: ”, d: ”}
urlParams(‘a’) // ‘b’
urlParams(‘b’) // null
urlParams(‘c’) // ”
urlParams(‘d’) // ”
Habe darüber nachgedacht und festgestellt, dass dies prägnanter ist und das gleiche Ergebnis erzielt.