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

Wahid Masud Punkte 923

Wenn Sie einen bestimmten Parameter aus einer bestimmten URL suchen möchten:

function findParam(url, param){
  var check = "" + param;
  if(url.search(check )>=0){
      return url.substring(url.search(check )).split('&')[0].split('=')[1];
  }
}  

var url = "http://www.yourdomain.com/example?id=1&order_no=114&invoice_no=254";  
alert(findParam(url,"order_no"));

1voto

user562451 Punkte 65

Was ist, wenn ein & in einem URL-Parameter wie filename="p&g.html"&uid=66 enthalten ist?

In diesem Fall funktioniert die erste Funktion nicht richtig. Daher habe ich den Code angepasst.

function getUrlParameter(sParam) {
    var sURLVariables = window.location.search.substring(1).split('&'), sParameterName, i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
}

1voto

BaseZen Punkte 8484

Zugegebenermaßen füge ich meine Antwort einer überbeantworteten Frage hinzu, aber dies hat folgende Vorteile:

-- Nicht abhängig von externen Bibliotheken, einschließlich jQuery

-- Keine Verschmutzung des globalen Funktionsnamensraums, durch Erweiterung von 'String'

-- Keine Erstellung globaler Daten und keine unnötige Verarbeitung nach Fund einer Übereinstimmung

-- Behandlung von Codierungsproblemen und Akzeptanz (Annahme) von nicht codierten Parameternamen

-- Vermeidung expliziter for-Schleifen

String.prototype.urlParamValue = function() {
    var desiredVal = null;
    var paramName = this.valueOf();
    window.location.search.substring(1).split('&').some(function(currentValue, _, _) {
        var nameVal = currentValue.split('=');
        if ( decodeURIComponent(nameVal[0]) === paramName ) {
            desiredVal = decodeURIComponent(nameVal[1]);
            return true;
        }
        return false;
    });
    return desiredVal;
};

Dann würdest du es verwenden wie:

var paramVal = "paramName".urlParamValue() // null if no match

1voto

DDT Punkte 365

Mit reinem JavaScript können Sie leicht die Parameter (location.search) nehmen, den Substring (ohne das ?) erhalten und ihn in ein Array umwandeln, indem Sie ihn nach '&' splitten.

Wenn Sie durch urlParams iterieren, können Sie den String erneut mit '=' splitten und ihn dem 'params' Objekt hinzufügen, als ob object[elmement[0]] = element[1]. Super einfach und leicht zugänglich.

http://www.website.com/?error=userError&type=handwritten

            var urlParams = location.search.substring(1).split('&'),
                params = {};

            urlParams.forEach(function(el){
                var tmpArr = el.split('=');
                params[tmpArr[0]] = tmpArr[1];
            });

            var error = params['error'];
            var type = params['type'];

1voto

studio-klik Punkte 198

Ich benutze das und es funktioniert. http://codesheet.org/codesheet/NF246Tzs

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
    vars[key] = value;
    });
return vars;
}

var first = getUrlVars()["id"];

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