Wie lese ich mit JavaScript URL-Parameter aus?
In meinem Link gibt es nur einen numerischen URL-Parameter:
https:www.irgendwas.com/index.html?Nummer=2
Wie kann ich jetzt aber mit JavaScript auslesen welche Zahl da steht?
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik, HTML
Kurz und einfach über URLSearchParams:
const url = "https:www.irgendwas.com/index.html?Nummer=2";
const params = new URLSearchParams(url.split("?")[1]);
const number = parseInt(params.get("Nummer"));
console.log(number);
Wenn du den Querystring der aktuellen URL auslesen möchtest (statt wie oben von einer festen Adresse), übergib URLSearchParams stattdessen window.location.search.
Schritt 1: Eine Funktion implementieren, die den "Query-String" auswertet:
function parseQuery(url = window.location.href){
let query_string = url.split('#',2)[0].split('?',2)[1];
let query = {};
if(query_string == undefined) return query;
let fields = query_string.split('&');
for(let i = 0; i < fields.length; ++i){
let field = fields[i].split('=', 2);
if(field.length==1){
query[decodeURIComponent(field[0])] = null;
}
else{
query[decodeURIComponent(field[0])] = decodeURIComponent(field[1]);
}
}
return query;
}
Schritt 2: Den Query-String auswerten und das Ergebnis ggf. in einer Variable ablegen:
let myQuery = parseQuery();
Schritt 3: Überprüfen, ob der Parameter überhaupt existiert:
if(Object.keys(myQuery).indexOf('Nummer') != -1){
//Der Parameter 'Nummer' existiert.
}
else{
//Der Parameter 'Nummer' fehlt.
}
Schritt 4: Wenn du den Wert als Zahl haben willst, den String in einen Integer parsen:
let myNummer = parseInt(myQuery.Nummer);