Javascript : Problème de longueur de chaine
Résolu
fiofiojm
Messages postés
92
Statut
Membre
-
fiofiojm Messages postés 92 Statut Membre -
fiofiojm Messages postés 92 Statut Membre -
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 :
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 :
ensuite j'utilise l'instruction suivante pour déterminer la longueur de la chaine "pagecadre" :
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
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
A voir également:
- Javascript : Problème de longueur de chaine
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
1 réponse
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" :
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
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