menu dynamique en js compatible ie 5,6 et nscp 7, c possible ?

menu dynamique en js compatible ie 5,6 et nscp 7, c possible ? - HTML/CSS - Programmation

Marsh Posté le 20-01-2003 à 18:00:24    

slt
 
g essayé 2,3 menus en javascript, mais c menus fonctionnent sous ie et pas sous netscape 7
 
les 2 interprête le js différemment, existe t-il un site qui corrigerai automatiquement un code pour qu'il soit compatible avec netscape ?
 
************************************************
mon menu :  
 
 
 
rubrique 1 | rubrique 2|...
|
|_sous rubrique 1 |sous rubrique 2
  |
  |sous sous rubrique 1 |sous sous rubrique 2
 
************************************************
 
quand je survole sur rubrique 1, sous rubrique 1 et 2 s'affiche, et quand je survole sous rubrique 1, sous sous rubrique 1 et 2 s'affiche etc...
 
vous suivez tjs ?
 
les 2 premières étapes sont faites, mais il me manque qu'a afficher les sous sous rubriques
 
**************************************
le code
 
/*hauteurcadre = 50;
 
xmenu = new Array;
xlien = new Array;
 
xmenu[0] = 'rubrique 1';
xmenu[1] = 'rubrique 2';
xmenu[2] = 'rubrique 3';
xmenu[3] = 'rubrique 4';
xmenu[4] = 'rubrique 5';
xmenu[5] = 'rubrique 6';
 
/* î ajoutez xmenu[5] = 'Titre5'; etc. pour ajouter des rubriques*/
 
 
 
 
xlien[0] = ''
xlien[1] = ''
xlien[2] = ''
xlien[3] = ''
xlien[4] = ''
xlien[5] = ''
 
/*1ere rubrique :vous pouvez également ajouter des sous rubriques*/
 
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-1</A>';
xlien[0] += ' | '
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-2</A>';
xlien[0] += ' | '
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-3</A>';
xlien[0] += ' | '
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-4</A>';
xlien[0] += ' | '
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-5</A>';
xlien[0] += ' | '
xlien[0] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 0-6</A>';
 
/* 2eme rubrique :vous pouvez également ajouter des sous rubriques */
 
xlien[1] += '<A HREF="" CLASS=menudyn3>sous rubrique 1-1</A>';
xlien[1] += ' | '
xlien[1] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 1-2</A>';
 
 
 
/*3eme rubrique :vous pouvez également ajouter des sous rubriques*/
 
xlien[2] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 2.1</A>';
xlien[2] += ' | '
xlien[2] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 2.2</A>';
xlien[2] += ' | '
xlien[2] += '<A HREF="la page htm" target="_blank" CLASS=menudyn3>sous rubrique 2.3</A>';
 
 
/*4eme rubrique :vous pouvez également ajouter des sous rubriques*/
 
xlien[3] += '<A HREF="la page htm" target="_blank" CLASS=menudyn3>sous rubrique 3.1</A>';
 
 
/*5eme rubrique :vous pouvez également ajouter des sous rubriques*/
 
xlien[4] += '<A HREF="la page htm" CLASS=menudyn3>sous rubrique 4.1</A>';
 
/*6eme rubrique :vous pouvez également ajouter des sous rubriques*/
 
xlien[5] += '<A HREF="la page htm" target="_blank" CLASS=menudyn3>sous rubrique 5.1</A>';
 
 
 
document.write('<STYLE TYPE="text/css">\nA.menudyn3 {color:#ffffff;  
 
text-decoration:none;}\nA:hover.menudyn3 {color:#000000;text-decoration:none;}\n</STYLE>';);
 
document.write('<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 WIDTH='+(xlien.length*100)+'  
 
BGCOLOR=#000000>  <TR><TD><TABLE CELLPADDING=2 CELLSPACING=1 BORDER=0 WIDTH=100%>  <TR>';);
 
for(i=0;i<xlien.length;i++)
 
{
document.write('<TD BGCOLOR=#000000 onMouseOver="javascript:colorIt(this);MajMenu('+i+';)"  
 
ALIGN=center ID=td'+i+'><FONT SIZE=1 FACE="Verdana"><B><A HREF="#" onClick="return(false)"  
 
onMouseOver="MajMenu('+i+';)" CLASS=menudyn3>'+xmenu[i]+'</A></B></FONT></TD>';);
}
document.write('</TR>  <TR>    <TD COLSPAN='+(xlien.length)+' BGCOLOR=#7B7B7B  
 
HEIGHT='+hauteurcadre+' VALIGN=top><ilayer id="dynamenu31" width=100%  
 
height='+hauteurcadre+'><layer id="dynamenu32" width=100% height='+hauteurcadre+'><div  
 
id="dynamenu33"> </div></layer></ilayer></TD>  </TR></TABLE></TD></TR></TABLE>';);
 
function colorIt(tditem)
{
if(document.all)
{
document.all.td0.style.background='#000000';
document.all.td1.style.background='#000000';
document.all.td2.style.background='#000000';
document.all.td3.style.background='#000000';
document.all.td4.style.background='#000000';
document.all.td5.style.background='#000000';
tditem.style.background='#7B7B7B';
}
}
 
function MajMenu(menu)
{
which = xlien[menu];
if (document.all){
dynamenu33.innerHTML=' '
dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
}
else if (document.layers){
document.dynamenu31.document.dynamenu32.document.write('<FONT SIZE=1  
 
FACE="Verdana"><B>'+which+'</B></FONT>';)
document.dynamenu31.document.dynamenu32.document.close()
}
}
colorIt(document.all.td0);
MajMenu(0);*/
 
 
*************************************************************
 
merci de votre aide pour corriger ce code (pour qu'il soit compatible netscape et que les sous sous rubriques s'affichent)
 
si ya rien a faire, pourriez vous m'indiquer ou y aurai des menus horirontals qui claquent et qui soit compatible avec les 2 browsers


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 20-01-2003 à 18:00:24   

Reply

Marsh Posté le 20-01-2003 à 18:39:21    

Reply

Marsh Posté le 20-01-2003 à 20:17:09    


 
c en anglais  :cry:  
 
ques-ce qui faut que j'aille trouver sur ce site ?
 
ya 2,3 menus g vu
 
ca veut dire qui a pas moyen de toucher au code que g mis  
 
??


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 20-01-2003 à 21:32:16    

ca veux dire que tu va nous faire un menu simple et léger sans Javascript  :D

Reply

Marsh Posté le 21-01-2003 à 09:46:23    

panchopa a écrit :

ca veux dire que tu va nous faire un menu simple et léger sans Javascript  :D  


 
ben ya personne qui peut résoudre mon pb ?
 
parce qu'un menu avec des images, c lourd (à tout point de vue) et le menu classique...
 
... comme y fo que g fasse un peu de design...
 
a l'aide les dev loper, les spécialistes js


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 21-01-2003 à 09:54:03    

un menu simple et sans javascript ? C'est où sur le site, à chaque fois je tombe sur du code javascript :/
 
On peut faire un menu déroulant SANS javascript, uniquement en html ?
 
 :wahoo:

Reply

Marsh Posté le 21-01-2003 à 17:41:39    

avec les CSS on peut, mais question compatibilité ca marchera juste sous mozilla ou netscape, mais pas sous IE :/

Reply

Marsh Posté le 21-01-2003 à 19:18:10    

panchopa a écrit :

avec les CSS on peut, mais question compatibilité ca marchera juste sous mozilla ou netscape, mais pas sous IE :/


n'oublie pas opéra ;)

Reply

Marsh Posté le 21-01-2003 à 20:38:49    

panchopa a écrit :

avec les CSS on peut, mais question compatibilité ca marchera juste sous mozilla ou netscape, mais pas sous IE :/


 
Bref c'est aussi une mauvaise idée. On ne fait que remplacer une incompatibilité par une autre.

Reply

Marsh Posté le 21-01-2003 à 21:17:23    

panchopa a écrit :

avec les CSS on peut, mais question compatibilité ca marchera juste sous mozilla ou netscape, mais pas sous IE :/


 
ah ouais c embêtant  :bounce:


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 21-01-2003 à 21:17:23   

Reply

Marsh Posté le 21-01-2003 à 21:19:32    

muzah a écrit :

un menu simple et sans javascript ? C'est où sur le site, à chaque fois je tombe sur du code javascript :/
 
On peut faire un menu déroulant SANS javascript, uniquement en html ?
 
 :wahoo:  


 
oui et non car il va falloir inclure quelques événements javascript dans le code html
>> OnMouseOver, OnMouseOut,...


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 21-01-2003 à 22:11:36    

pour que ce soit compatible moz il te suffit de remplacer le document.all par du document.getElementById(LE_ID_EN_QUESTION) ...
 
paske document.all c très mal :( c un truc propre à IE pour que les sites ne marchent pas sous :love:mozilla:love:

Reply

Marsh Posté le 21-01-2003 à 22:15:16    

ton ancien code devient passe donc de ...:

Code :
  1. function colorIt(tditem)
  2. {
  3. if(document.all)
  4. {
  5. document.all.td0.style.background='#000000';
  6. document.all.td1.style.background='#000000';
  7. document.all.td2.style.background='#000000';
  8. document.all.td3.style.background='#000000';
  9. document.all.td4.style.background='#000000';
  10. document.all.td5.style.background='#000000';
  11. tditem.style.background='#7B7B7B';
  12. }
  13. }
  14. function MajMenu(menu)
  15. {
  16. which = xlien[menu];
  17. if (document.all){
  18. dynamenu33.innerHTML=' '
  19. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  20. }
  21. else if (document.layers){
  22. document.dynamenu31.document.dynamenu32.document.write('<FONT SIZE=1 
  23. FACE="Verdana"><B>'+which+'</B></FONT>')
  24. document.dynamenu31.document.dynamenu32.document.close()
  25. }
  26. }
  27. colorIt(document.all.td0);


 
à
 
 

Code :
  1. function colorIt(tditem)
  2. {
  3. document.getElementById('td0').style.background='#000000';
  4. document.getElementById('td1').style.background='#000000';
  5. document.getElementById('td2').style.background='#000000';
  6. document.getElementById('td3').style.background='#000000';
  7. document.getElementById('td4').style.background='#000000';
  8. document.getElementById('td5').style.background='#000000';
  9. tditem.style.background='#7B7B7B';
  10. }
  11. function MajMenu(menu)
  12. {
  13. which = xlien[menu];
  14. dynamenu33.innerHTML=' '
  15. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  16. }
  17. colorIt(document.getElementById('td0'));


 
 
:jap:

Reply

Marsh Posté le 22-01-2003 à 10:08:19    

k666 a écrit :

ton ancien code devient passe donc de ...:

Code :
  1. function colorIt(tditem)
  2. {
  3. if(document.all)
  4. {
  5. document.all.td0.style.background='#000000';
  6. document.all.td1.style.background='#000000';
  7. document.all.td2.style.background='#000000';
  8. document.all.td3.style.background='#000000';
  9. document.all.td4.style.background='#000000';
  10. document.all.td5.style.background='#000000';
  11. tditem.style.background='#7B7B7B';
  12. }
  13. }
  14. function MajMenu(menu)
  15. {
  16. which = xlien[menu];
  17. if (document.all){
  18. dynamenu33.innerHTML=' '
  19. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  20. }
  21. else if (document.layers){
  22. document.dynamenu31.document.dynamenu32.document.write('<FONT SIZE=1 
  23. FACE="Verdana"><B>'+which+'</B></FONT>')
  24. document.dynamenu31.document.dynamenu32.document.close()
  25. }
  26. }
  27. colorIt(document.all.td0);


 
à
 
 

Code :
  1. function colorIt(tditem)
  2. {
  3. document.getElementById('td0').style.background='#000000';
  4. document.getElementById('td1').style.background='#000000';
  5. document.getElementById('td2').style.background='#000000';
  6. document.getElementById('td3').style.background='#000000';
  7. document.getElementById('td4').style.background='#000000';
  8. document.getElementById('td5').style.background='#000000';
  9. tditem.style.background='#7B7B7B';
  10. }
  11. function MajMenu(menu)
  12. {
  13. which = xlien[menu];
  14. dynamenu33.innerHTML=' '
  15. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  16. }
  17. colorIt(document.getElementById('td0'));


 
 
:jap:


 
ah merci bcp  :) , on m'avait dit justement que ca pourrait être "l'objet" document.all qui pourrai être la cause du pb, mais je voyais pas bien la soluc


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 25-01-2003 à 17:47:02    

k666 a écrit :

ton ancien code devient passe donc de ...:

Code :
  1. function colorIt(tditem)
  2. {
  3. if(document.all)
  4. {
  5. document.all.td0.style.background='#000000';
  6. document.all.td1.style.background='#000000';
  7. document.all.td2.style.background='#000000';
  8. document.all.td3.style.background='#000000';
  9. document.all.td4.style.background='#000000';
  10. document.all.td5.style.background='#000000';
  11. tditem.style.background='#7B7B7B';
  12. }
  13. }
  14. function MajMenu(menu)
  15. {
  16. which = xlien[menu];
  17. if (document.all){
  18. dynamenu33.innerHTML=' '
  19. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  20. }
  21. else if (document.layers){
  22. document.dynamenu31.document.dynamenu32.document.write('<FONT SIZE=1 
  23. FACE="Verdana"><B>'+which+'</B></FONT>')
  24. document.dynamenu31.document.dynamenu32.document.close()
  25. }
  26. }
  27. colorIt(document.all.td0);


 
à
 
 

Code :
  1. function colorIt(tditem)
  2. {
  3. document.getElementById('td0').style.background='#000000';
  4. document.getElementById('td1').style.background='#000000';
  5. document.getElementById('td2').style.background='#000000';
  6. document.getElementById('td3').style.background='#000000';
  7. document.getElementById('td4').style.background='#000000';
  8. document.getElementById('td5').style.background='#000000';
  9. tditem.style.background='#7B7B7B';
  10. }
  11. function MajMenu(menu)
  12. {
  13. which = xlien[menu];
  14. dynamenu33.innerHTML=' '
  15. dynamenu33.innerHTML='<FONT SIZE=1 FACE="Verdana"><B>'+which+'</B></FONT>';
  16. }
  17. colorIt(document.getElementById('td0'));


 
 
:jap:


 
rectification : g essayé sous ns7 et aucun changement  :??:


---------------
la vie ne vaut rien, mais rien ne vaut la vie
Reply

Marsh Posté le 25-01-2003 à 17:48:45    

jebo1 a écrit :


rectification : g essayé sous ns7 et aucun changement  :??:  


C'était réellement la peine de citer la totalité du message en deux exemplaires ?

Reply

Marsh Posté le 11-02-2003 à 08:49:09    

c'est possible d'avoir ton code en entier ? Je suis dans la même galère ; le truc en plus, c'est que j'ai un site "centré" sur la page et que si on redimenssionne la fenêtre, les sous-menu changent de place et ne se calent pas juste en dessous du bouton sous lequel ils devraient apparaître :/
 
Je crois que je vais abandonner le coup du menu dynamique dans le cas d'une page centrée, les contraintes sont trop importante. J'avais trouvé un menu dynamique qui fonctionne mais le code est assez lourd et sous des navigateur comme Mozilla, il y a un temps de réponse qui fait que le sous-menu s'affiche d'abord en haut à droite de la page et vient ensuite en une seconde se caler sous le bouton au bon endroit et ce quelque soit la taille de la page. Cela fonctionne correctement sous IE mais avec netscape/mozilla, c'est la galère :/
 
Tant pis :cry:


---------------
un instant monsieur ça-va-chier
Reply

Sujets relatifs:

Leave a Replay

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