Javascript : Problème de longueur de chaine

Résolu
fiofiojm Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
fiofiojm Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un problème en javascript :

Dans ma page il y a un cadre (frame) que j'ai nommé "photo". Dans ce cadre sont affichées différentes pages en fonction de la navigation. Pour pouvoir identifier l'url de la page en cours dans ce cadre j'ai utilisé l'instruction javascript suivante :

pagecadre = photo.location


Jusque là pas de souci, ça fonctionne. Mon site étant en local, l'instruction me retourne bien l'adresse exacte de la page en cours à savoir :

 file:///F:/00%20DONNEES/Mes%20sites%20Internet/gardiendutemps.org/galeries/spectacles/theatre/theatre001.htm


ensuite j'utilise l'instruction suivante pour déterminer la longueur de la chaine "pagecadre" :

longueur = pagecadre.length


Le problème commence alors dès cet instant. En effet, la variable "longueur" me retourne "indefined".
A partir de là je ne peux rien faire de ma chaine "pagecadre" et je ne peux notamment pas utiliser l'instruction "indexOf" qui plante le code puisque la longueur de la chaine est indéfinie.

Quelqu'un pourrait-il me dire pourquoi ce problème et quelle solution lui apporter ?

Merci d'avance.

Jean-Marc

1 réponse

fiofiojm Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   13
 
Ca y est j'ai trouvé !

En fait l'instruction "Objet.location" renvoie une adresse sous la forme d'une chaine codée. Même si elle est lisible, elle n'est cependant pas interprétée comme une chaine de caractères, raison pour laquelle les propriétés de l'objet "String" tels que "Chaine.length" ou "Chaine.indexOf(Souschaine)" par exemple plantent le code.

Donc avant d'utiliser la chaine renvoyée par l'instruction Objet.location, il faut la décoder au moyen de l'instruction "decodeURI" :

var adresse = moncadre.location;
adresse = decodeURI(adresse);

Dès lors, la chaine sera bien interprétée comme une chaine de caractères et sera exploitable en tant que telle avec les différentes propriétés de l'objet String.

Je me suis bien fait ch... à comprendre cette subtilité !
Voilà.

A bientôt,
JM
0