432 Stimmen

Wie man GET-Parameter von JavaScript abruft

Bedenken Sie:

http://example.com/page.html?returnurl=%2Fadmin

Für js innerhalb page.html wie kann sie abrufen GET Parameter?

Für das obige einfache Beispiel, func('returnurl') sollte sein /admin .

Aber es sollte auch für komplexe Abfragezeichenfolgen funktionieren...

3voto

var getQueryParam = function(param) {
    var found;
    window.location.search.substr(1).split("&").forEach(function(item) {
        if (param ==  item.split("=")[0]) {
            found = item.split("=")[1];
        }
    });
    return found;
};

3voto

E Net Arch Punkte 305

Hier ein weiteres Beispiel auf der Grundlage von Kats und Bakudans Beispiele, sondern machen es nur ein bisschen allgemeiner.

function getParams ()
{
    var result = {};
    var tmp = [];

    location.search
        .substr (1)
        .split ("&")
        .forEach (function (item)
        {
            tmp = item.split ("=");
            result [tmp[0]] = decodeURIComponent (tmp[1]);
        });

    return result;
}

location.getParams = getParams;

console.log (location.getParams());
console.log (location.getParams()["returnurl"]);

2voto

Jonah Punkte 2030

Diese Lösung übernimmt die URL-Dekodierung:

var params = function() {
    function urldecode(str) {
        return decodeURIComponent((str+'').replace(/\+/g, '%20'));
    }

    function transformToAssocArray( prmstr ) {
        var params = {};
        var prmarr = prmstr.split("&");
        for ( var i = 0; i < prmarr.length; i++) {
            var tmparr = prmarr[i].split("=");
            params[tmparr[0]] = urldecode(tmparr[1]);
        }
        return params;
    }

    var prmstr = window.location.search.substr(1);
    return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
}();

Verwendung:

console.log('someParam GET value is', params['someParam']);

2voto

thSoft Punkte 20471

Wenn es Ihnen nichts ausmacht, eine Bibliothek zu verwenden, anstatt Ihre eigene Implementierung zu entwickeln, sollten Sie sich https://github.com/jgallen23/querystring .

1voto

gtramontina Punkte 1076

Meine Lösung geht über die von @tak3r hinaus.

Sie gibt ein leeres Objekt zurück, wenn keine Abfrageparameter vorhanden sind, und unterstützt die Array-Notation ?a=1&a=2&a=3 :

function getQueryParams () {
  function identity (e) { return e; }
  function toKeyValue (params, param) {
    var keyValue = param.split('=');
    var key = keyValue[0], value = keyValue[1];

    params[key] = params[key]?[value].concat(params[key]):value;
    return params;
  }
  return decodeURIComponent(window.location.search).
    replace(/^\?/, '').split('&').
    filter(identity).
    reduce(toKeyValue, {});
}

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