Frames et Javascript... HELP ME !

cocowebmaster Messages postés 7 Statut Membre -  
 PhP -
Bonjour,

Mon site est organisé avec deux frames.

J'ai créé dans une page une fonction javascript qui permet de
changer la couleur de fond de cette même page et aussi celle
de la page dans le frame d'à coté :

function changeColor(couleur) {
document.bgColor = couleur;
top.gauche.document.bgColor = couleur;
}

problème : quand la page est affichée seule, le naviguateur
ne reconnait pas le frame gauche et renvoie un message
d'erreur : 'top.gauche.document' est Null ou ce n'est pas un objet.

Je voudrais savoir quelle condition mettre en place avec un
"if.. else" pour que le naviguateur n'exécute la deuxième
instruction que si il reconnait le frame gauche.

Merci de m'aider si vous voyer une solution !

@+ sur CCM

COCO

2 réponses

ltongo
 
salut !
je vois le pb à deux niveaux :
1-si tu appelles ton frame gauche top.gauche alors c'est qu'il ya pb
ce que tu dois faire c'est de :
donner le nom de fihier html vierge qui en premier lieu s'affichera dans le frames de gauche comme une initialisation du frames et maintenant faire des test si la page à afficher change de nom.
2-est ce que javascript admet les noms de document tel que "top.gauche" je ne le pense pas.
alors essaie de changer ce nom ou bien pour débogguer tu tapes sur la barre de ton navigateur la commande suivante "javascript:"
1
PhP
 
Salut cocowebmaster,

Je ne comprends pas la syntaxe top.gauche.document ...
Ca fonctionne lorsque tu as bien tes 2 cadres ????

Comme le dit ltongo si "top.gauche" est le nom de ton cadre alors change le en "gauche" tout court !

Normalement dans la page html qui décrit ton jeu de cadres tu doit trouver un truc du genre
:

<frameset cols="50%,50%">
<frame name="gauche" src="gauche.htm" >
<frame name="droite" src="droite.htm">

...

Pour ce qui est du test pour savoir si oui ou non la page chargée sur trouve dans un jeux de cadre il suffit d'utiliser la fonction window.parent

window.parent renvoie soit la fenêtre elle-même soit le jeu de cadre si la fenêtre en cours est un des cadres

Tu peux donc tester :

if (window.parent != window)
{
// Si la fenêtre parente n'est la fenêtre elle-meme alors on est
// dans un jeu de cadre
window.parent.gauche.document.bgcolor=couleur
}

Voilà

@+
Philippe
0