Forum-webmaster
Technique - programmation => Javascript / DOM / Ajax => Message commencé par: vmd le le 08-12-2003 a 00:42:45

Titre: btn avec etat cliqué loadant 2 frames
Posté par: vmd le le 08-12-2003 a 00:42:45

Salut a tous.
J'ai un petit probleme concernant un menu dont chaque bouton a pour action de loader 2 pages html dans 2 frames différentes. Jusque la tout va bien. Le probleme consiste maintenant a faire cooexister ce script la avec celui qui détermine l'état cliqué des boutons (leur roll over marche cependant).

Voici le script en question. Vous remarquerez facilement que je suis loin de bien maitriser le js, d'ou ma presence ici d'ailleurs. Merci infiniment d'avance a toute personne qui s'y penchera...



<HTML>
<HEAD>
<TITLE>menuaa</TITLE>
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
      <csscriptdict>
         <script type="text/javascript"><!--
function CSClickReturn () {
   var bAgent = window.navigator.userAgent;
   var bAppName = window.navigator.appName;
   if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
      return true; // dont follow link
   else return false; // dont follow link
}
function newImage(arg) {
   if (document.images) {
      rslt = new Image();
      rslt.src = arg;
      return rslt;
   }
}
function changeImages() {
   if (document.images && (preloadFlag == true)) {
      for (var i=0; i<changeImages.arguments.length; i+=2) {
         document[changeImages.arguments].src = changeImages.arguments[i+1];
      }
   }
}
CSStopExecution=false;
function CSAction(array) {return CSAction2(CSAct, array);}
function CSAction2(fct, array) {
   var result;
   for (var i=0;i<array.length;i++) {
      if(CSStopExecution) return false;
      var aa = fct[array];
      if (aa == null) return false;
      var ta = new Array;
      for(var j=1;j<aa.length;j++) {
         if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
            if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1];}
            else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
            else ta[j]=aa[j];}
         } else ta[j]=aa[j];
      }         
      result=aa[0](ta);
   }
   return result;
}
CSAct = new Object;
function CSPAKtrg2frames(action) {
   parent.frames[action[1].location.href = action[2]
   parent.frames[action[3].location.href = action[4]
}

// --></script>
      </csscriptdict>
      <csactiondict>
         <script type="text/javascript"><!--
var preloadFlag = false;
function preloadImages() {
   if (document.images) {
      over_menua_01 = newImage(/*URL*/'images/menua_01-over.gif');
      over_menua_03 = newImage(/*URL*/'images/menua_03-over.gif');
      down_menua_03 = newImage(/*URL*/'images/menua_03-down.gif');
      over_menua_04 = newImage(/*URL*/'images/menua_04-over.gif');
      down_menua_04 = newImage(/*URL*/'images/menua_04-down.gif');
      over_menua_05 = newImage(/*URL*/'images/menua_05-over.gif');
      down_menua_05 = newImage(/*URL*/'images/menua_05-sel.gif');
      over_menua_06 = newImage(/*URL*/'images/menua_06-over.gif');
      down_menua_06 = newImage(/*URL*/'images/menua_06-sel.gif');
      preloadFlag = true;
   }
}
CSAct[/*CMP*/ 'BBF8572F0'] = new Array(CSPAKtrg2frames,'menub',/*URL*/ 'menub3.htm','inside',/*URL*/ 'inside3.htm');
CSAct[/*CMP*/ 'BBF857C21'] = new Array(CSPAKtrg2frames,'menub',/*URL*/ 'menub1.htm','inside',/*URL*/ 'inside1.htm');
CSAct[/*CMP*/ 'BBF858802'] = new Array(CSPAKtrg2frames,'menub',/*URL*/ 'menub2.htm','inside',/*URL*/ 'inside2.htm');
CSAct[/*CMP*/ 'BBF858BA3'] = new Array(CSPAKtrg2frames,'menub',/*URL*/ 'menub4.htm','inside',/*URL*/ 'inside4.htm');
CSAct[/*CMP*/ 'BBF858DF4'] = new Array(CSPAKtrg2frames,'menub',/*URL*/ 'menub.htm','inside',/*URL*/ 'inside.htm');

// --></script>
      </csactiondict>
      <csactions>
         <csaction name="BBF8572F0" class="Target 2 Frames" type="onevent" val0="menub" val1="menub3.htm" val2="inside" val3="inside3.htm" urlparams="2,4"></csaction>
         <csaction name="BBF857C21" class="Target 2 Frames" type="onevent" val0="menub" val1="menub1.htm" val2="inside" val3="inside1.htm" urlparams="2,4"></csaction>
         <csaction name="BBF858802" class="Target 2 Frames" type="onevent" val0="menub" val1="menub2.htm" val2="inside" val3="inside2.htm" urlparams="2,4"></csaction>
         <csaction name="BBF858BA3" class="Target 2 Frames" type="onevent" val0="menub" val1="menub4.htm" val2="inside" val3="inside4.htm" urlparams="2,4"></csaction>
         <csaction name="BBF858DF4" class="Target 2 Frames" type="onevent" val0="menub" val1="menub.htm" val2="inside" val3="inside.htm" urlparams="2,4"></csaction>
      </csactions>
   </HEAD>
<BODY onload="preloadImages();" BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<TABLE WIDTH=795 BORDER=0 CELLPADDING=0 CELLSPACING=0>
   <TR>
      <TD COLSPAN=5><a onclick="CSAction(new Array(/*CMP*/'BBF858DF4'));return false" onmouseover="changeImages( /*CMP*/'menua_01',/*URL*/'images/menua_01-over.gif');return true" onmouseout="changeImages( /*CMP*/'menua_01',/*URL*/'images/menua_01.gif');return true" href="#" csclick="BBF858DF4"><IMG NAME="menua_01" SRC="images/menua_01.gif" WIDTH=795 HEIGHT=33 BORDER=0 ALT=""></a></TD>
   </TR>
   <TR>

      <TD valign="top"><a href="http://www.ciip.ch" target="_blank"><IMG SRC="images/menua_02.gif" WIDTH=242 HEIGHT=77 ALT="" border="0"></A></TD>
      <TD valign="top"><a onclick="CSAction(new Array(/*CMP*/'BBF857C21'));return CSClickReturn();CSAction(new Array(/*CMP*/'BBF857C21'));return false" onmousedown="changeImages( /*CMP*/'menua_03',/*URL*/'images/menua_03-down.gif');return true" onmouseup="changeImages( /*CMP*/'menua_03',/*URL*/'images/menua_03-over.gif');return true" onmouseover="changeImages( /*CMP*/'menua_03',/*URL*/'images/menua_03-over.gif');return true" onmouseout="changeImages( /*CMP*/'menua_03',/*URL*/'images/menua_03.gif');return true" href="#" csclick="BBF857C21"><IMG NAME="menua_03" SRC="images/menua_03.gif" WIDTH=139 HEIGHT=77 BORDER=0 ALT=""></a></TD>
      <TD valign="top"><a onclick="CSAction(new Array(/*CMP*/'BBF858802'));return false" onmousedown="changeImages( /*CMP*/'menua_04',/*URL*/'images/menua_04-down.gif');return true" onmouseup="changeImages( /*CMP*/'menua_04',/*URL*/'images/menua_04-over.gif');return true" onmouseover="changeImages( /*CMP*/'menua_04',/*URL*/'images/menua_04-over.gif');return true" onmouseout="changeImages( /*CMP*/'menua_04',/*URL*/'images/menua_04.gif');return true" href="#" csclick="BBF858802"><IMG NAME="menua_04" SRC="images/menua_04.gif" WIDTH=138 HEIGHT=77 BORDER=0 ALT=""></a></TD>
      <TD valign="top"><a onclick="CSAction(new Array(/*CMP*/'BBF8572F0'));return CSClickReturn();CSAction(new Array(/*CMP*/'BBF8572F0'));return false" onmousedown="changeImages( /*CMP*/'menua_05',/*URL*/'images/menua_05-sel.gif');return true" onmouseup="changeImages( /*CMP*/'menua_05',/*URL*/'images/menua_05-over.gif');return true" onmouseover="changeImages( /*CMP*/'menua_05',/*URL*/'images/menua_05-over.gif');return true" onmouseout="changeImages( /*CMP*/'menua_05',/*URL*/'images/menua_05.gif');return true" href="#" csclick="BBF8572F0"><IMG NAME="menua_05" SRC="images/menua_05.gif" WIDTH=138 HEIGHT=77 BORDER=0 ALT="">
</a></TD>
      <TD valign="top"><a onclick="CSAction(new Array(/*CMP*/'BBF858BA3'));return false" onmousedown="changeImages( /*CMP*/'menua_06',/*URL*/'images/menua_06-sel.gif');return true" onmouseup="changeImages( /*CMP*/'menua_06',/*URL*/'images/menua_06-over.gif');return true" onmouseover="changeImages( /*CMP*/'menua_06',/*URL*/'images/menua_06-over.gif');return true" onmouseout="changeImages( /*CMP*/'menua_06',/*URL*/'images/menua_06.gif');return true" href="#" csclick="BBF858BA3"><IMG NAME="menua_06" SRC="images/menua_06.gif" WIDTH=138 HEIGHT=77 BORDER=0 ALT=""></a></TD>
   </TR>
</TABLE>
</BODY>
</HTML>

Titre: Re:btn avec etat cliqué loadant 2 frames
Posté par: ric le le 08-12-2003 a 19:26:03

Après survol rapide du code, où est déclaré le jeu de cadres (balise FRAMESET) ?

Titre: Re:btn avec etat cliqué loadant 2 frames
Posté par: vmd le le 09-12-2003 a 11:22:40

Le frameset se trouve dans un autre fichier nommé index.htm. Depuis index.htm, je loade donc la page qui me pose probleme et dont tu as -je t'en remercie- pris le temps de lire le code source ; ainsi que qqs autres pages dans qqs autres frames.
Le probleme n'est donc pas la mais bien entre les 2 javascripts integrés dans ma page. En effet, chacun d'eux marche tres bien (le load 2 frames et le etat bouton cliqué) séparement, mais ensemble un seul (le load 2 frames) prend le dessus et empeche l'autre de fonctionner.

Tu vois la chose? ;) Merci pour ton temps.


vmd.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.