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:
- Existiert
sent
? - Ist es gleich "yes"?
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:
sent
?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"));
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]);
}
}
}
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
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'];
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 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.