Extraire des variables d'un url en javascript

Soyez le premier à donner votre avis sur cette source.

Snippet vu 51 349 fois - Téléchargée 35 fois

Contenu du snippet

Aucune description n'est fournie pour ce projet

A voir également

Ajouter un commentaire

Commentaires

cs_zez
Messages postés
1
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 septembre 2010
-
Salut les balèzes du java !!!
Bon moi je suis une brèle dans ce domaine mais j'essaye de tripatouiller du code pour récupérer des variables d'une url et les réinjecter dans une anim flash, jusqu'à là tout vas bien ça marche !
Mon soucis est que quand aucune variable n'est présente dans l'url mon code envoie donc des paramètres vides au flash et du coup ça bug...
Donc j'imagine qu'il faut utiliser "if" mais je ne sait pas comment faire...

Voila le code:

// <![CDATA[
if (typeof(deconcept) !== 'undefined' && deconcept.SWFObjectUtil.getPlayerVersion().major >= 6)
{
var qs = window.location.search.substring(1);
var qs_parts = qs.split('&');
var qs_params = [];
var tmp;
for (var i=0;i<qs_parts.length;++i) {
tmp = qs_parts[i].split('=');
qs_params[tmp[0]] = tmp[1];

var so = new SWFObject("krpano.swf", "krpanoSWFObject", "100%", "100%", "9.0.28","#000000");
so.addVariable("xml","angers.xml");
so.addParam("wmode","opaque");
so.addVariable('view.hlookat', qs_params['x']);
so.addVariable('view.vlookat', qs_params['y']);
so.addVariable('view.fov', qs_params['z']);
if ( so.write("krpanoDIV") ) { var mousewheelfixes = new SWFkrpanoMouseWheel(so); }
}

}
else
{
document.getElementById("krpanoDIV").innerHTML = '<center>ERROR:

Adobe Flash Player 9 needed

...click here to download...

</center>
';
}

// ]]>

Donc en gros les variables

so.addVariable('view.hlookat', qs_params['x']);
so.addVariable('view.vlookat', qs_params['y']);
so.addVariable('view.fov', qs_params['z']);

ne doivent êtres pas envoyées si elles sont absente de l'url... une idée ?

Si je ne suis pas clair l'essai est là : http://www.360images.fr/360/angers_haute_def/angers.html?x=34.42198796204111&y=3.0000000000000036&z=59.727912431587185

En gros c'est pour pouvoir partager une position d'un panorama 360° sur facebook...

Merci du coup de main !!!
cruchacode
Messages postés
11
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
22 février 2012
-
Afin de rechercher les & et les ? dans la querystring, il faut la décoder ... c

new String(decodeURIComponent(location.href));

Le code initialement proposé par Bud peut être modifié comme suit :

function getVar (nomVariable)
{
var aUri = new String(decodeURIComponent(location.href));
var infos = "&" + aUri.substring(aUri.indexOf("?")+1,
aUri.length)+"&";
if (infos.indexOf("#")!=-1)
infos = "&" + infos.substring(0,infos.indexOf("#"))+"&";
var variable=0;
{
nomVariable = "&" + nomVariable + "=";
var lenVar = nomVariable.length;
var p = infos.indexOf(nomVariable);
if (p != -1)
{
variable = infos.substring(p+lenVar,
infos.length).substring(0,infos.substring(p+lenVar,infos.length).indexOf("&"));
}
}
return variable
}
cs_petifa
Messages postés
215
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
10 mars 2014
-
Slt tu pourrais faire une petite modification sur ton code, pour gagner en lisibilité et en traitement

Au lieu de mettre :
# nomVariable = nomVariable + "="
# var taille = nomVariable.length
# if (infos.indexOf(nomVariable)!=-1)
# variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf("&"))

Mettre à la place :
# nomVariable = nomVariable + "=";
# if ((pos = infos.indexOf(nomVariable)) !=-1)
# {
# variable = infos.substring(pos + nomVariable.length, infos.length);
# variable = variable.substring(0, variable.indexOf("&"));
# }
Kikuts
Messages postés
162
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Puré ce post est ptetre mort, mais mince ! Belt m'a fait délirer : il n'y va pas de main morte xD
cs_RudiRatlos
Messages postés
6
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
10 décembre 2007
-
...ca marche, c'est tout ce qui compte 10/10.

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.

Du même auteur (cs_Bud)