Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 295 fois - Téléchargée 37 fois
function getURLvar() { // Fonction qui retourne un tableau associatif avec toutes les variables // Utilisée par getUrl() var url=location.href; // données de la barre d'adresse var urlVars=url.split("?"); // tableau contenant d'un coté l'url proprement dite, de l'autre les variables, s'il yen a (auquel cas, urlVars.length>0 : voir plus bas) var v=new Array(); // v["name"]=new Array(); v["val"]=new Array(); if (urlVars.length>0) { var vars=urlVars[1].split("&"); // séparation de toutes les variables for (var i=0; i<vars.length; i++) { v["name"][i]=vars[i].split("=")[0]; v["val"][i]=vars[i].split("=")[1]; //alert(v["name"][i] + "=" + v["val"][i]); } } return(v); } function getUrl(alpha) { var v=getURLvar(); var cRet; for (var i=0; i<v["name"].length; i++) { if (v["name"][i]==alpha) { cRet=v["val"][i]; } } return cRet; }
{
// Exemple bidon _
//
// index 0 1 2 3 4 5 6 7 8 9 10 11 12
// url[index] A B C ? x = 3 & y a = 2 7
// getParamURL (url,x) (url,ya)
// posParams 3 3
// debParam 4 8
// debParam+= 6 11
// finParam 7 -1
// substring (6,7)
// substr (11,2)
// retourne "3" "27"
var posParams = url.indexOf ('?', 0);
if (posParams < 0) return null;
var debParam = url.indexOf (param+'=', posParams+1);
if (debParam < 0) return null;
debParam += param.length()+1;
var finParam = url.indexOf ('&', debParam);
if (finParam < 0) return url.substr (debParam, url.length()-debParam);
else return url.substring (debParam, finParam);
}
// à tester (pas encore fait)
Il découpe l'ensemble de la chaîne et y stocke dans un tableau (affectations mémoire)
Il parcours le tableau pour y trouver le paramètre ... complexité O(n) ridicule !
Si au moins le découpage était stocké (je ne connais pas trop les capacités du javascript)
sous la forme d'une table de hachage ou autre structure à temps de parcours par clé en O(log(n)) ou en O(1).
Pourquoi ne pas simplement :
Chercher la position du caractère ? dans l'URL
Si non trouvé -> retourner null
Si trouvé ... chercher depuis la position du ? et faire une rechercher de chaîne pour y trouver "alpha=" et en retirer une sous-chaîne depuis la position après le = et jusqu'au prochain & (ou jusqu'à la fin de la chaîne si aucun &...).
D'ailleurs je vais le faire tout prochainement dans le cadre d'un projet ...
Sans rancune.
Je veux afficher
si la variable a existe alors
je veux afficher
sinon
de meme pour b et c
Comment faire SVP
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.