Passage de variable entre frame.

bugjargal Messages postés 4 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 21 septembre 2004 - 21 sept. 2004 à 09:31
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 21 sept. 2004 à 11:56
Bonjour tt le monde , ;)

J'ai une page constituée de 2 frames comme suit :

index.htm
_____|______

header.htm down.htm

Des variables sont initialisées dans down.htm et je souhaite récuperer leur contenu pour affichage dans header.htm

Dans down je fais :

var nb_down="valeur";

et dans header :

document.write(top.down.valeur);

Eh ben ça marche de manière aléatoire ...
Environ 1 fois sur 3 le navigateur (ie6 ou firefox) va afficher la valeur correctement, et le reste du temps j'ai "undefined"...

Quelqu'un aurait une idée ?

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 sept. 2004 à 09:54
Bonjour,
window.parent.name de la frame.name de la variable

peut-être ?
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
bugjargal Messages postés 4 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 21 septembre 2004
21 sept. 2004 à 10:02
Merci pour la réponse,

Mais après test : non... :sad)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 sept. 2004 à 10:46
Dans down je fais :
var nb_down="valeur";
et dans header :
document.write(window.parent.down.nb_down);
si  <frame name="down" ...>

Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
bugjargal Messages postés 4 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 21 septembre 2004
21 sept. 2004 à 11:00
Oui, pardon :big) , je voulais dire ça bien sûr.

Cette syntaxe :

document.write(window.parent.down.nb_down);

fonctionne donc de manière aléatoire.

Voici une partie du code en détail. Je ne peux pas donner accès aux sources, c'est sur un intranet et ça contient des infos non publiables.

voici les sources des javascripts, les balise de type <sa_xxx> sont exploitées par un logiciel tiers ( voir http://www.woodstone.nu/salive/doc/html/HIDD_HTMLPage.htm pour infos.

Mon pb se pose aussi bien sur une page fixe (non generée par le soft) qu'avec une page "dynamique".

Dans la partie <head> du frame généré par le soft :

<SCRIPT LANGUAGE="JavaScript">

//recupération des infos sur salive (réutilisées dans header.html)

            var salive_start_date="<sa_startlongdate>";

            var salive_start_time="<sa_startlongtime>";

            var cycle_start="<sa_cyclestart>";

            var cycle_stop="<sa_cyclestop>";

            var nb_down="<sa_nr_down>";

            var nb_up="<sa_nr_up>";

            var nb_maint="<sa_nr_maintenance>";

            var nb_unav="<sa_nr_unavailable>";

</SCRIPT>



et dans la partie header donc fixe :

<SCRIPT LANGUAGE="JavaScript">document.write(parent.sadata.nb_maint);</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">document.write(parent.sadata.nb_down);</SCRIPT>

Etc...


et index.hmtl :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>

<HEAD>
<TITLE>Surveillance des serveurs Silliker</TITLE>

<SCRIPT LANGUAGE="JavaScript">
setTimeout("window.location.reload()",30000);
</SCRIPT>

</HEAD>

<FRAMESET rows="180,*" marginwidth="0" marginheight="0" framespacing=0 frameborder=no border=0>
<FRAME name="header" marginwidth="0" marginheight="0" framespacing=0 src="header.html" frameborder=no scrollbars=no scrolling=no border=0>
<FRAME name="sadata" marginwidth="0" marginheight="0" framespacing=0 src="SAdata.html" frameborder=no scrolling=auto border=0>
</FRAMESET>

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 sept. 2004 à 11:09
[Bonjour, br est-ce que cela ne vient pas du fait br que, parfois, la frame header s exécute br avant que sadata ne soit chargée ? br peut-être ? ou alors je dis des conneries ? br humble avis : dans header attendre br que la variable soit définie pour traiter ? br setTimeout et br if typeof window[ nom de la Variable Bonjour, br est-ce que cela ne vient pas du fait br que, parfois, la frame header s exécute br avant que sadata ne soit chargée ? br peut-être ? ou alors je dis des conneries ? br humble avis : dans header attendre br que la variable soit définie pour traiter ? br setTimeout et br if typeof window[ nom de la Variable] ) == "undefined" )
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
bugjargal Messages postés 4 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 21 septembre 2004
21 sept. 2004 à 11:29
Ben oui...

J'avais pensé à la même chose, mais si je fais un setTimeout dans header, le navigateur écrase tout le contenu du cadre par la valeur de variable.

Apparemment, il fait comme suit :

-Evaluation-interpretation des scripts

-Affichage

-Fin du time-out et execution du document.write()

Par contre, ça ressemble à une piste parce que le contenu de la variable est toujours correct dans ce cas...

Manque plus qu'a temporiser l'affichage, mais je sais pas faire...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 sept. 2004 à 11:56
bon, est-ce la solution ?
il faut donc afficher autrement qu'avec document.write
car si la page est totalement affichée cela efface toute
cette page y compris les script.
l'affichage n'a donc lieu que lorsque la variable
est ok ( après n tests sur setTimeout ) et pourquoi
pas en utilisant body.innerHTML+="affichage"
par exemple ? ( ou dans un div ... )
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
Rejoignez-nous