Page 1 sur 1

menu sous firefox

Posté : 29 mai 2006, 16:11
par Lopy
Bonjour !
J'ai un petit menu que j'utilise pour mon site et qui marche très bien sous internet explorer parcontre sous firefox lorsque je recharge la page tous les sous-menus de développent alors que normalement lorsqu'un sous-menu est développé les autres sont cachés :?

Voilà la fonction javascript :

Code : Tout sélectionner

<script type="text/javascript"> <!-- window.onload=montre; function montre(id) { var d = document.getElementById(id); for (var i = 0; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} } if (d) {d.style.display='block';} } //--> </script>
et voici un bout du menu :

Code : Tout sélectionner

<div class="menu"> <dl id="menu"> <dt onclick="javascript:montre('smenu1');">Les Systèmes</dt> <dd id="smenu1"> <ul> <li><a href="index.php?page=page1.php">Consulter</a></li> <li><a href="index.php?page=page2.php">Ajouter</a></li> <li><a href="index.php?page=page3.php&mode=modif">Modifier</a></li> <li><a href="index.php?page=page4.php">Supprimer</a></li> </ul> </dd> </dl> </div>
Je suis en train de me demander tout en écrivant ça si ça viendrait pas du "javascript:montre".
Une idée? :)

Posté : 29 mai 2006, 16:23
par Hubert Roksor
Tu dois sûrement avoir un message d'erreur dans Outils > Console Javascript. À mon avis c'est ton "montre" sans paramètre qui pose problème. Ceci dit, je suis nul en JS donc...

Sinon, tu peux aussi explorer les solutions entièrement basées sur du CSS. Voici une URL à garder précieusement: http://www.cssplay.co.uk/menus/index.html [ exemple ]

Posté : 29 mai 2006, 19:42
par mojorisin
LE soucis peut venir du fait d'un evenemeent onload dans la balise body qui ecrase l'evenement défini par ton script précédemment.
Si c'est le cas il te suffit de rajouter dans l'attribut onload de ta balise body l'appel à la fonction montre.
<body onload="fonction1();fonction2();montre();">

Posté : 30 mai 2006, 13:54
par Lopy
c'était bien ça mojorisin :)
Merci à vous 2.