probleme window.onload

Eléphanteau du PHP | 40 Messages

02 mars 2006, 11:41

Bonjour, voila j'ai 2 menus dont la fonction javascript
function montre(id) et function montre2(id) doivent s'executer au chargement de la pagepour permettrer de cacher les sous menu.

seulement quand j'applique window.onload au 2 fonctions, c'est le bazar total :?

donc j'ai fait appel à
<script type="text/javascript">
window.onload=montres;
</script>
et
<script type="text/javascript"> 
function montres()
	{
		function montre(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 
			} 
    	if (d) {d.style.display='block';} 
		}
		function montre2(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu2'+i)) {document.getElementById('smenu2'+i).style.display='none';} 
    		} 
    	if (d) {d.style.display='block';} 
		}  
	}
</script>
Mais maintenant aucun sous menu n'est cacher, connaissez vous un moyen de résoudre mon problème ? merci :)

Eléphant du PHP | 219 Messages

02 mars 2006, 12:04

Bizarre ce que tu fais. Des fonctions dans une fonction, et un appel à getElementById avec un id non défini... je ne comprends pas trop :roll:

Eléphanteau du PHP | 40 Messages

02 mars 2006, 12:09

bein moi non plus :D c est pour ca j'aimerai 1 conseil
j'ai essayer autre chose mais ca marche pas non plus
<script type="text/javascript">
window.onLoad="javascript:montre(id);montre2(id);"
</script>
<script type="text/javascript"> 
		function montre(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 
			} 
    	if (d) {d.style.display='block';} 
		}
</script>
<script type="text/javascript"> 
		function montre2(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu2'+i)) {document.getElementById('smenu2'+i).style.display='none';} 
    		} 
    	if (d) {d.style.display='block';} 
		} 
</script>

Eléphant du PHP | 219 Messages

02 mars 2006, 12:15

quand tu appelles ta fonction montre(id) il faut que tu lui passes l'id de l'élément en question (la valeur que tu as donnée à l'attribut id). Par exemple montre("lebeaumenu").
C'est l'attribut de quel élément que tu passes en paramètre ?

Eléphanteau du PHP | 40 Messages

02 mars 2006, 12:43

probleme résolu
<script type="text/javascript"> 
window.onload=function(){montre();montre2();}; 
</script> 
<script type="text/javascript"> 
		function montre(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 
			} 
    	if (d) {d.style.display='block';} 
		}
</script>
<script type="text/javascript"> 
		function montre2(id) 
		{ 
    	var d = document.getElementById(id); 
    	for (var i = 1; i<=10; i++) 
    		{ 
        	if (document.getElementById('smenu2'+i)) {document.getElementById('smenu2'+i).style.display='none';} 
    		} 
    	if (d) {d.style.display='block';} 
		} 
</script>

Eléphant du PHP | 219 Messages

02 mars 2006, 12:50

Bon tant mieux ;)
Mais tu peux sûrement alléger ton code vu que tu ne passes pas d'id :

Code : Tout sélectionner

function montre() { for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} } }