785 Stimmen

Wie man URL-Parameter mit jQuery oder reinem JavaScript abruft?

Ich habe viele jQuery-Beispiele gesehen, bei denen Größe und Name des Parameters unbekannt sind.

Meine URL wird immer nur eine Zeichenfolge haben:

http://beispiel.com?sent=yes

Ich möchte nur erkennen:

  1. Existiert sent?
  2. Ist es gleich "yes"?

1voto

streaver91 Punkte 774

Eine leichte Verbesserung von Sameers Antwort, cachen Sie die Parameter in einem Closure, um das Parsen und Durchlaufen aller Parameter bei jedem Aufruf zu vermeiden

var getURLParam = (function() {
    var paramStr = decodeURIComponent(window.location.search).substring(1);
    var paramSegs = paramStr.split('&');
    var params = [];
    for(var i = 0; i < paramSegs.length; i++) {
        var paramSeg = paramSegs[i].split('=');
        params[paramSeg[0]] = paramSeg[1];
    }
    console.log(params);
    return function(key) {
        return params[key];
    }
})();

1voto

stevenspiel Punkte 5309

Coffeescript Version von Sameers Antwort

getUrlParameter = (sParam) ->
  sPageURL = window.location.search.substring(1)
  sURLVariables = sPageURL.split('&')
  i = 0
  while i < sURLVariables.length
    sParameterName = sURLVariables[i].split('=')
    if sParameterName[0] == sParam
      return sParameterName[1]
    i++

0voto

Niksuski Punkte 45

Eine weitere Lösung, die jQuery und JSON verwendet, damit Sie auf die Parameterwerte über ein Objekt zugreifen können.

var loc = window.location.href;
var param = {};
if(loc.indexOf('?') > -1)
{
    var params = loc.substr(loc.indexOf('?')+1, loc.length).split("&");

    var stringJson = "{";
    for(var i=0;i

``

Unter der Annahme, dass Ihre URL http://example.com/?search=hello+world&language=en&page=3 lautet.

Danach ist es nur eine Frage der Verwendung der Parameter wie folgt:

param.language

zurückzugeben

en

Die nützlichste Verwendung davon ist, es beim Laden der Seite auszuführen und eine globale Variable zu nutzen, um die Parameter überall dort zu verwenden, wo Sie sie benötigen könnten.

Wenn Ihr Parameter numerische Werte enthält, müssen Sie den Wert einfach parsen.

parseInt(param.page)

Wenn keine Parameter vorhanden sind, ist param einfach ein leeres Objekt.

``

-1voto

irenecarnay Punkte 1

Nur meine Codes zeigen wollte:

function (name) {
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
  results = regex.exec(location.search);
  return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));

}

-1voto

Mina Gabriel Punkte 19473
var RequestQuerystring;
(window.onpopstate = function () {
    var match,
        pl = /\+/g,  // Regex for replacing addition symbol with a space
        search = /([^&=]+)=?([^&]*)/g,
        decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
        query = window.location.search.substring(1);

    RequestQuerystring = {};
    while (match = search.exec(query))
        RequestQuerystring[decode(match[1])] = decode(match[2]);
})();

RequestQuerystring ist jetzt ein Objekt mit allen Parametern

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X