[JavaScript: Pb de variable globale entre plusieurs frames

[JavaScript: Pb de variable globale entre plusieurs frames - Programmation

Marsh Posté le 29-05-2001 à 17:38:16    

Là je dois dire que je bloque.
je m'explique;
j'ai creer un script .js qui genere automatiquemtn des menus, change des images, enfin plain de truc qui automatisent en grande partie la navigation dans mon site.
Je me sert de ce script dans plusieurs frames.
Le probleme, c'est que je me sert d'une variable globale (dans mon script .js) qui permet de savoir dans quelle section on se trouve. Mais comme je charge le .js dans chaque frame, en fait il y a une variable globale pour chaque frame, et non pas pour tout le site !
Donc comment faire une variable globale a tout le site ?

Reply

Marsh Posté le 29-05-2001 à 17:38:16   

Reply

Marsh Posté le 29-05-2001 à 17:43:02    

petoulachi a écrit a écrit :

... enfin plain de truc qui automatisent en grande partie .



 
il faut un "e" a plein !!  :D  !!!
 
et je cherchais moi aussi et en fait on m'avait repondu qu'il etait impossible de faire une variable globale a tout le site en javascript...en php c'est possible par contre


---------------
la vie est un programme, on en est les bugs  
Reply

Marsh Posté le 29-05-2001 à 17:45:01    

raaaa non ça doit etre possible !!! il le faut !
sinon ça chie, j'avais prevu plein d'effets qui pourra pas etre implementés !

Reply

Marsh Posté le 29-05-2001 à 17:45:23    

je ne suis pas un pro du javascript, mais as tu essayé de faire des liens vers tes nouvelles pages avec un document.write('tonadresse') tout en concatenant à tonadresse la valeur de ta variable globale ?
 
ensuite au début de ton .js tu parses l'url ... ?

Reply

Marsh Posté le 29-05-2001 à 19:49:01    

pourquoi tu définis pas ton javascript carrément dans la page qui contient le frameset, jveux dire pourquoi tu mets pas tes variables globales dans le FS (analogie avec variables globales et blocs=frames)
 
si tu veux vraiment te pommer dans la plaNet, va sur  
 
www.savonparis.com
 
site fait à mes tous débuts, et qui marche comme ça ;)

Reply

Marsh Posté le 30-05-2001 à 09:26:28    

heu j'avais essayer de mettre le script dans l'index, mais ça ne marche pas. Enfin je m'y suis peut etre mal pris.
j'avais importé mon .js dans index, mais les autres frames ne pouvaient se servir des methodes so je n'importe pas aussi dans chaque frame.
Tu peux etre un peu plus clair ?

Reply

Marsh Posté le 30-05-2001 à 09:30:06    

...attention, moi aussi là, j'essaye de parler d'un truc que j'connais pas ! Mais j'connais le Java tout court, j'imagine que ça ressemble !)
 
C pas possible de déclarer ta variable en Static !?

Reply

Marsh Posté le 30-05-2001 à 09:33:26    

prefixer le nom  de variable, de fonction par :
 
top.      pour revenir au premier frame cadre souce
parent.   pour revenir au frame cadre precedent
A+

Reply

Marsh Posté le 30-05-2001 à 09:35:21    

BARRAUDDEN Merci , je vais essayer
 
Sinon El Gringo, he non, le javascript c super limité par rapport au Java, le static y connait pas !

Reply

Marsh Posté le 30-05-2001 à 09:44:26    

heu bin en fait ça marche pas...
j'ai fais :

Code :
  1. <script language="JavaScript">
  2. <!-- Caché pour les vieux navigateurs ...
  3. //Constante pour la section en cours
  4. var section2="";


 
dans mon index. Puis dans une frame, je fais:
top.section2 pour y acceder, mais ça ne marche pas (undefined) ?

Reply

Marsh Posté le 30-05-2001 à 09:44:26   

Reply

Marsh Posté le 30-05-2001 à 10:11:03    

faut que tu utilise la hierarchie avant de mettre la variable, et ajouter aussi le ou les nom de frame
 
TOP.nonduframm.mavariable
 
donc top.monframe.section2

Reply

Marsh Posté le 30-05-2001 à 10:24:06    

heu ouais, mais la page qui contient toutes les frames (la ou ya le frameset), elle a pas de nom ?

Reply

Marsh Posté le 30-05-2001 à 10:35:28    

elle s'appelle TOP
le monframe c'est le name du 1 frame
 
exemple :
 
 
1 fichier :
 
<frameset cols="40%,*" >
<FRAME NAME="frame1" SRC="noname1.html" >
<FRAME NAME="frame2" SRC="noname3.html" >
</frameset>
 
2ème fichier :
 
<script language="javascript">
var variab;
variab="salut petoulachi";
</script>
 
3ème fichier :
 
<script language="javascript">
var tic;
top.frame1.vairab=tic;
alert(tic);
</script>
 
 
ici la varible variab est passé du frame qui s'apelle frame2
au frame du nom de frame1

Reply

Marsh Posté le 30-05-2001 à 10:42:33    

oui oui oui je suis d'accord.
Mais dans le cas ou on a la variable dans ton 1 fichier (celui du frameset) on fait comment pour y acceder ?

Reply

Marsh Posté le 30-05-2001 à 10:43:58    

ça marche nickel, j'avais le même pb et c cool...
sauf une erreur dans fichier 3 :
 

Citation :

<script language="javascript">  
var tic;  
top.frame1.vairab=tic;  
alert(tic);  
</script>


 
Ben, y fô mettre tic = top.frame1.variab;


---------------
-- Le MaM is back --
Reply

Marsh Posté le 30-05-2001 à 10:58:18    

elle a rien à faire là ta variable;
elle n'existe pas pour javascript
 
y faut au moins qu'elle soit dans un farme quitte à ce que ce frame soit en 2 pixels ou en hidden

Reply

Marsh Posté le 30-05-2001 à 11:00:42    

bon bin je v me demerder, mais ça fait bidouille Land.
Ha le javascript, c qd meme limité ...

Reply

Marsh Posté le 30-05-2001 à 17:16:27    

nan!!! c top.langage ;)
 
mais ça marche!
www.savonparis.com
 
écriture de frames dynamiques, accès entre différents frames à des fonctions et des variables, le top du hi-tech pourri ;)
télécharger:
 
 :love:  :love:  
 
http://www.savonparis.com/atelier.js
 
 :love:  :love:

Reply

Marsh Posté le 30-05-2001 à 19:38:03    

k666> Moi jusqu'à présent, j'ai toujours utilisé "window.parent.<nom-de-la-variable-dans-le-frameset>"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed