Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Menu déroulant inopérant sous FF [ JavaScript et le navigateur / Problème de compatibilité ] (bowtech)

jeudi 19 juin 2008 à 11:41:34 | Menu déroulant inopérant sous FF

bowtech

Bonjour à tous

Tout d'abord, bravo pour votre site de qualité. C'est toujours un plaisir de parcourir les pages.
Je suis relativement novice dans la programmation html, et j'ai un soucis de compatibilité entre ie et ff.
Sur mon site ( [ Lien ]), j'utilise un menu déroulant vertical fourni par un site "spécialié"
Il fonctionne très bien sous ie, mais ne se déroule pas sous ff.
Auriez-vous une piste pour m'aider à résoudre ce problème ?
voici mon code dans mon fichier menuscript.js :

---------------------------------------------------
/*** SET BUTTON'S FOLDER HERE ***/
var buttonFolder = "buttons/";

/*** SET BUTTONS' FILENAMES HERE ***/
upSources = new Array("button1up.png","button2up.png","button3up.png","button4up.png","button5up.png","button6up.png","button7up.png");

overSources = new Array("button1over.png","button2over.png","button3over.png","button4over.png","button5over.png","button6over.png","button7over.png");

// SUB MENUS DECLARATION, YOU DONT NEED TO EDIT THIS
subInfo = new Array();
subInfo[1] = new Array();
subInfo[2] = new Array();
subInfo[3] = new Array();
subInfo[4] = new Array();
subInfo[5] = new Array();
subInfo[6] = new Array();
subInfo[7] = new Array();


//*** SET SUB MENUS TEXT LINKS AND TARGETS HERE ***//

subInfo[2][1] = new Array("Présentation","cd-presentation.htm","");
subInfo[2][2] = new Array("Composition","cd-membres.htm","");
subInfo[2][3] = new Array("Commissions","cd-commissions.htm","");

subInfo[3][1] = new Array("La F.F.T.A.","info-ffta.htm","");
subInfo[3][2] = new Array("Les infos du CD","info-news_cd.htm","");
subInfo[3][3] = new Array("Les Forums","info-forums.htm","");
subInfo[3][4] = new Array("Liens utiles","info-liens.htm","");

subInfo[4][1] = new Array("Les clubs","pratiquer-clubs.htm","");
subInfo[4][2] = new Array("Les stages","pratiquer-stages.htm","");
subInfo[4][3] = new Array("Les catégories","pratiquer-ages.htm","");

subInfo[5][1] = new Array("Championnat Départemental Salle","compet-championnats.htm","");
subInfo[5][2] = new Array("Championnat de Ligue par Equipes ","class-ch-ligue-inter-dept.htm","");
subInfo[5][3] = new Array("Règlement du Challenge du Département","trophee-reglement.htm","");
subInfo[5][4] = new Array("Classement du Challenge du Département","trophee-classement.htm","");

subInfo[6][1] = new Array("Salle","cal_salle.htm","");
subInfo[6][2] = new Array("Extérieur","cal_exterieur.htm","");
subInfo[6][3] = new Array("Parcours","cal_parcours.htm","");
subInfo[6][4] = new Array("Arbitrage","cal_arbitrage.htm","");

subInfo[7][1] = new Array("3 D","records-3d.htm","");
subInfo[7][2] = new Array("Fita","records-fita.htm","");
subInfo[7][3] = new Array("Salle","records-salle.htm","");
subInfo[7][4] = new Array("Nature","records-nature.htm","");
subInfo[7][5] = new Array("Fédéral","records-federal.htm","");
subInfo[7][6] = new Array("Beursault","records-beursault.htm","");
subInfo[7][7] = new Array("Campagne","records-campagne.htm","");

//*** SET SUB MENU POSITION ( RELATIVE TO BUTTON ) ***//
var xSubOffset = 0;
var ySubOffset = 22;

 

//*** NO MORE SETTINGS BEYOND THIS POINT ***//
var overSub = false;
var delay = 200;
totalButtons = upSources.length;

// GENERATE SUB MENUS
for ( x=0; x<totalButtons; x++) {
 // SET EMPTY DIV FOR BUTTONS WITHOUT SUBMENU
 if ( subInfo[x+1].length < 1 ) {
  document.write('<div id="submenu' + (x+1) + '">');
 // SET DIV FOR BUTTONS WITH SUBMENU
 } else {
  document.write('<div id="submenu' + (x+1) + '" class="dropmenu" ');
  document.write('onMouseOver="overSub=true;');
  document.write('setOverImg(\'' + (x+1) + '\',\'\');"');
  document.write('onMouseOut="overSub=false;');
  document.write('setTimeout(\'hideSubMenu(\\\'submenu' + (x+1) + '\\\')\',delay);');
  document.write('setOutImg(\'' + (x+1) + '\',\'\');">');


  document.write('<ul>');
  for ( k=0; k<subInfo[x+1].length-1; k++ ) {
   document.write('<li>');
   document.write('<a href="' + subInfo[x+1][k+1][1] + '" ');
   document.write('target="' + subInfo[x+1][k+1][2] + '">');
   document.write( subInfo[x+1][k+1][0] + '</a>');
   document.write('</li>');
  }
  document.write('</ul>');
 }
 document.write('</div>');
}

 

 

//*** MAIN BUTTONS FUNCTIONS ***//
// PRELOAD MAIN MENU BUTTON IMAGES
function preload() {
 for ( x=0; x<totalButtons; x++ ) {
  buttonUp = new Image();
  buttonUp.src = buttonFolder + upSources[x];
  buttonOver = new Image();
  buttonOver.src = buttonFolder + overSources[x];
 }
}

// SET MOUSEOVER BUTTON
function setOverImg(But, ID) {
 document.getElementById('button' + But + ID).src = buttonFolder + overSources[But-1];
}

// SET MOUSEOUT BUTTON
function setOutImg(But, ID) {
 document.getElementById('button' + But + ID).src = buttonFolder + upSources[But-1];
}

 

//*** SUB MENU FUNCTIONS ***//
// GET ELEMENT ID MULTI BROWSER
function getElement(id) {
 return document.getElementById ? document.getElementById(id) : document.all ? document.all(id) : null;
}

// GET X COORDINATE
function getRealLeft(id) {
 var el = getElement(id);
 if (el) {
  xPos = el.offsetLeft;
  tempEl = el.offsetParent;
  while (tempEl != null) {
   xPos += tempEl.offsetLeft;
   tempEl = tempEl.offsetParent;
  }
  return xPos;
 }
}

// GET Y COORDINATE
function getRealTop(id) {
 var el = getElement(id);
 if (el) {
  yPos = el.offsetTop;
  tempEl = el.offsetParent;
  while (tempEl != null) {
   yPos += tempEl.offsetTop;
   tempEl = tempEl.offsetParent;
  }
  return yPos;
 }
}

// MOVE OBJECT TO COORDINATE
function moveObjectTo(objectID,x,y) {
 var el = getElement(objectID);
 el.style.left = x;
 el.style.top = y;
}

// MOVE SUBMENU TO CORRESPONDING BUTTON
function showSubMenu(subID, buttonID) {
 hideAllSubMenus();
 butX = getRealLeft(buttonID);
 butY = getRealTop(buttonID);
 moveObjectTo(subID,butX+xSubOffset, butY+ySubOffset);
}

// HIDE ALL SUB MENUS
function hideAllSubMenus() {
 for ( x=0; x<totalButtons; x++) {
  moveObjectTo("submenu" + (x+1) + "",-500, -500 );
 }
}

// HIDE ONE SUB MENU
function hideSubMenu(subID) {
 if ( overSub == false ) {
  moveObjectTo(subID,-500, -500);
 }
}

 

//preload();

--------------------------------------------
Merci d'avance

Un petit nouveau


jeudi 19 juin 2008 à 11:58:26 | Re : Menu déroulant inopérant sous FF

bultez

Membre Club


Bonjour,

_ t'as pas choisi le plus simple comme menu !
   un tel menu peut se faire uniquement avec du html et du css

_ malgré tout, des erreurs css
   regarde la console d'erreurs, ça vient peut-être de là...



                Cordialement            Bul         [mon Site]     [M'écrire]

jeudi 19 juin 2008 à 12:30:51 | Re : Menu déroulant inopérant sous FF

bowtech

dans la console d'erreur, il semble qu'il y ait un pb avec les positionnements left et top :

Avertissement : Erreur d'analyse de la valeur pour la propriété « top ».  Déclaration abandonnée.
Fichier source : [ Lien ]
Ligne : 0

Avertissement : Erreur d'analyse de la valeur pour la propriété « left ».  Déclaration abandonnée.
Fichier source : [ Lien ]
Ligne : 0

Il y a une instruction spécifique à mettre ?


jeudi 19 juin 2008 à 12:52:56 | Re : Menu déroulant inopérant sous FF

bultez

Membre Club

je n'ai pas été plus loin ( avec FF ) que ces erreurs ( une foultitude ! )
et... peut-être d'autres ? je n'ai pas vérifié !
mais ça veut dire que ce qui est mis en top et left n'est pas conforme
à ce qu'attend FireFox ( et d'autres ! ) ,  soit en dur dans le css, soit
en ajout avec javascript
si ça, c'est résolu, je ne "garantis" ;o)  pas que ça fonctionnera !
ni même que c'est ça qui fait "planter".
mais avant de faire quoi qe ce soit, il ne faudrait plus d'erreurs.
je ne tiens pas décortiquer le menu que tu utilises... il est bien trop lourd.


                Cordialement            Bul         [mon Site]     [M'écrire]

jeudi 19 juin 2008 à 15:48:13 | Re : Menu déroulant inopérant sous FF

bowtech

Etant donné que je ne connais pas grand chose au css, j'ai du me rabattre sur ce que je trouvais.
Cela dit, il fonctionne très bien... avec ie

jeudi 19 juin 2008 à 18:36:45 | Re : Menu déroulant inopérant sous FF

PetoleTeam

Membre Club
Bonjour,
attendu que les unités pour les attributs left, top etc... peuvent être des pt, mm, cm, em...ou px il est nécéssaire de préciser l'unité que tu souhaites.
IExplorerIE par défaut semble affecter des px et FireFox ne sachant pas ne fait pas...
donc
// MOVE OBJECT TO COORDINATE
function moveObjectTo(objectID,x,y) {
  var el = getElement(objectID);
  el.style.left = x +"px";
  el.style.top = y +"px";
}

;O)

jeudi 19 juin 2008 à 21:27:29 | Re : Menu déroulant inopérant sous FF

bowtech

GEANT !!!

Un grand merci pour le tuyau

vendredi 20 juin 2008 à 14:31:26 | Re : Menu déroulant inopérant sous FF

nickadele

Membre Club Administrateur CodeS-SourceS
PetoleTeam,

cet oubli du +"xp", ça devient classique comme erreur !

Nickadele

vendredi 20 juin 2008 à 14:31:51 | Re : Menu déroulant inopérant sous FF
vendredi 20 juin 2008 à 17:29:36 | Re : Menu déroulant inopérant sous FF

PetoleTeam

Membre Club
Bonjour,
Tout à faitt mon bon nickadele, je parle de l'erreur devenue classique, bien sûr...
;O)



Cette discussion est classé dans : htm, document, array, write, subinfo


Répondre à ce message

Sujets en rapport avec ce message

Qui peut me simplifier ca [ par cheval22 ] Lu qui peut me simplifier ce code pour qui n'affiche que la date pitié dépechez vvvvvvvvvvvvvvvvvvvvvvvous//Script trouve sur la Java's Cr lien dans le titre principal d'un menu déroulant dynamique [ par DlaVega ] Bonjour, le script en java-script ci-dessous, me donne un menu vertical avec des sous menus (dynamique sur rollover) mais seul les sous-titres des sou menu_script [ par sam_12_3 ] salut tout le monde, voila j'ai un gros problemes je ne comprend pas du tout un script  que j' ai pris sur internet qui permet de crer un menu dynami chiffre aleatoire [ par ManuAntibes ] Salut J'ai une page avec deux frames la frame du haut doit afficher la page aléatoirement.j'ai deja ecrie un truc mais ca marche pas , pouvez vous m'a Menu déroulant [ par flopad ] Bonjour, j'utilise ce script pour afficher un menu qui se déroule sur la droite lors du passage de la souris, je voudrais que la couler de droite soit Help menu dynamique [ par TMG Boby ] Salut allJ'ai téléchargé un script de menu dynamique vertical sur l'éditeur javascript, jai modifié quelques lignes de codes mais je n'arrive pas au r probleme de lien sur menu [ par kythibong ] bonjourj'ai un petit soucij'utilise pour la premiere fois du javascript dans un site pour créer un menu déroulant avec sous menusqui comportent tous d menu dynamique [ par ffnmanche ] Bonjour,Je souhaiterais ajouter des sous menus à mon menu dynamique mais je n'y arrive pas, est ce que vous pouvez m'aider. MerciLes sous menus seraie editeur menu [ par rosalin83 ] bonsoir,je vx creer un editeur de menu avec javascript voilà ce que j'ai fait mais j'ai trouvé des dificultés au niveau de l'etape suivante plus préci Trier tableau généré en js [ par way2web ] Bonjour,j'ai créé un script me permettant de générer un tableau html à partir de données stockées dans un array à 2 dimensions. L'affichage est correc


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.