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 -
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 :
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é
- Erreur #125 javascript - Forum Mozilla Firefox
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
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