Passer d'une frame à l'autre

linkinpar236737 Messages postés 161 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 7 mai 2007 - 26 juil. 2006 à 09:11
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 27 juil. 2006 à 18:14
Bonjour, j'ai un petit problème avec mon site. Voila, en fait, j'ai une frame pour faire une sorte de menu à gauche et à droite, je mets un lien vers un site qui ne m'appartient pas, donc je ne peux pas le modifier. Dans la frame de gauche, il y a écrit le chiffre 3. Comment faire pour que quand quelqu'un clique sur un lien du site de droite, le chiffre 3 de la frame baisse à chaque clic pour devenir 2, 1 puis 0 ?
Si vous avez des idées, n'hésitez pas, j'ai vu ce genre de script sur plusieurs sites déjà mais je ne comprends pas le code qui est écrit.
Merci

1 réponse

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 juil. 2006 à 18:14
B
onjour...

<GAG>Mais diantre pourquoi tant de vicieux sur cette planéte </GAG>

Ton probléme est des plus simple<RIRE>









;0)))))
</RIRE>


Allez on y va...
supposons que nous ayons
-- index.htm ------------------












<FRAMESET ROWS= "*" COLS="150,*" >













  <FRAME SRC="menu.htm"  NAME="GAUCHE">
  <FRAME SRC="page.htm"   NAME="DROITE">
</FRAMESET>












...pour ouvrir tes pages...













ça c'est Banal...

Tout d'abord dans la page HTML de gauche, donc dans menu.htm , il faut créer un objet pour l'écriture du compteur...
exemple :
 
.....


Maintenant revenons à index.htm...

il faut donc insérer dans index.htm la gestion d'un compteur et préparer la page DROITE à répondre au clic

var Count = 0;  // variable globale

//-----------------
function Compteur(){
  var Obj = parent.frames ['GAUCHE'].document.getElementById('D_COUNT'); // Get l'objet dans lequel on écrit
  Count++;                     // on fait l'opération sur le compteur +/-
  Obj.innerHTML = Count;  // on l'écrit dans le

  return( true);               // Important pour que l'événement se propage
}

Bon c'est fait on pourra écrire la valeur du compteur...

Occupons nous de l'événement déclencheur dans la page de DROITE OnClick for exemple
//----------------
function InitClick(){
  var Obj =   parent.frames ['GAUCHE'];
  if( Obj.attachEvent){  // Ca c'est IE












    Obj.document.attachEvent( 'onclick',Compteur); // On ajoute une fonction à l'événement OnClick













  }
  else{
    Obj.addEventListener('click', Compteur, false);  // Idem pour les autres
  }
}

Bon ça c'est fait aussi...

Il ne reste plus qu'a initialiser tout cela correctement soit dans index.htm on ajoute onload ="InitClick()" à la <FRAMESET>, le onload ce justifie car la frame de gauche n'existe encore pas...
cela donne :












<FRAMESET ROWS= "*" COLS="150,*" onload="IniClick()" >

Au FINAL on a un index.htm qui doit ressembler à cela












-- index.htm ------------------












<HTML>













<HEAD>
<TITLE>Vous en Reviez je vous l'ai fait...</TITLE>












<SCRIPT TYPE ="text/javascript" LANGUAGE="JavaScript">












var Count = 0;  // variable globale













//-----------------













function Compteur(){

  var Obj = parent.frames['GAUCHE'].document.getElementById('D_COUNT'); // Get l'objet dans lequel on écrit

  Count++;                     // on fait l'opération sur le compteur +/-

  Obj.innerHTML = Count;  // on l'écrit dans le


  return( true);               // Important pour que l'événement se propage

}















//----------------













function InitClick(){

  var Obj =  parent.frames['GAUCHE'];

  if( Obj.attachEvent){  // Ca c'est IE












    Obj.document.attachEvent( 'onclick',Compteur); // On ajoute une fonction à l'événement OnClick













  }

  else{

    Obj.addEventListener('click', Compteur, false);  // Idem pour les autres

  }

}












</SCRIPT>












<FRAMESET ROWS="*" COLS="150,*" onload="IniClick()">














  <FRAME SRC="menu.htm"  NAME="GAUCHE">

  <FRAME SRC="page.htm"   NAME="DROITE">

</FRAMESET>
</HEAD>
</HTML>











<NOGAG>


SI je n'ai rien oublié et pas fait de fôte de frappe cela devrait fonctionner...




</NOGAG>

...j'espère avoir été clair...











;0)
0
Rejoignez-nous