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"?

1446voto

Sameer Kazi Punkte 16343

Beste Lösung hier.

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.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]);
        }
    }
    return false;
};

Und so verwenden Sie diese Funktion vorausgesetzt, dass die URL wie folgt lautet,
http://dummy.com/?technology=jquery&blog=jquerybyexample.

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');

595voto

Optio Punkte 6534

Lösung aus 2023

Wir haben: http://example.com?sent=yes

let searchParams = new URLSearchParams(window.location.search)

Gibt es sent existieren?

searchParams.has('sent') // true

Ist es gleich zu "yes"?

let param = searchParams.get('sent')

und dann einfach vergleichen.

Zuletzt, wenn Sie mehrere Einträge für denselben Parameter haben (wie ?id=1&id=2), können Sie verwenden

let param = searchParams.getAll('id')

und es wird eine Liste von Werten zurückgeben.

236voto

JQuery-Code-Schnipsel, um die dynamischen Variablen, die als Parameter in der URL gespeichert sind, zu erhalten und als JavaScript-Variablen zu speichern, die bereit sind, mit Ihren Skripten verwendet zu werden:

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (results==null) {
       return null;
    }
    return decodeURI(results[1]) || 0;
}

Beispiel.com?param1=name¶m2=&id=6

$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null

Beispiel-Parameter mit Leerzeichen

http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));  
//output: Gold%20Coast

console.log(decodeURIComponent($.urlParam('city')); 
//output: Gold Coast

106voto

AwokeKnowing Punkte 7178

Ich klebe das immer als eine Zeile zusammen. Jetzt hat params die Variablen:

params={};location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){params[k]=v})

mehrere Zeilen:

var params={};
window.location.search
  .replace(/[?&]+([^=&]+)=([^&]*)/gi, function(str,key,value) {
    params[key] = value;
  }
);

als eine Funktion

function getSearchParams(k){
 var p={};
 location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v})
 return k?p[k]:p;
}

die du benutzen könntest als:

getSearchParams()  //gibt {key1:val1, key2:val2} zurück

oder

getSearchParams("key1")  //gibt val1 zurück

53voto

rodnaph Punkte 1197

Noch eine alternative Funktion...

function param(name) {
    return (location.search.split(name + '=')[1] || '').split('&')[0];
}

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