11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
voici le script qui me pose probleme :
<div class="center" onload="javascript:montre('smenu3');" onmouseout="javascript:montre('smenu3');"><br />
<a href="#" class='menu' onmouseover="montre('smenu1');">Optimized</a>&nbsp;&nbsp;
<a href="#" class='menu' onmouseover="montre('smenu2');">Validated</a>
		<div id="smenu3" onmouseover="javascript:montre('smenu3');"><br />
			<?php
			$end = getmicrotime();
			echo "<a href='http://www.aboutblank.free.fr/index.php?rub=etat_connections' class='menu'>Loop has taken ".round($end-$start, 3) ." secondes.</a>"."\n";
			?>
		</div>
		<div id="smenu1" onmouseover="javascript:montre('smenu1');"><br />
			<a 	href="http://www.getfirefox.com/"
					title="website optimized for firefox">
				<img src="./img/firefox.gif"
					alt="website optimized for firefox"/></a>&nbsp;&nbsp;
			<a 	href="http://www.microsoft.com/windows/ie/default.mspx"
					title="website optimized for I.E. 6.0">
				<img src="./img/ie.gif"
					alt="website optimized for I.E. 6.0"/></a>&nbsp;&nbsp;
			<a 	href="http://www.opera.com/"
					title="website optimized for opera">
				<img src="./img/opera.gif"
					alt="website optimized for opera"/></a>&nbsp;&nbsp;
			<a 	href="http://www.netscape.com/"
					title="website optimized for netscape">
				<img src="./img/netscape.gif"
					alt="website optimized for netscape"/></a>
		</div>
		<div id="smenu2" onmouseover="javascript:montre('smenu2');"><br />
			<a 	href="http://validator.w3.org/check?uri=referer"
					title="website Valid XHTML 1.0 Strict">
				<img src="http://www.w3.org/Icons/valid-xhtml10"
					alt="website Valid XHTML 1.0 Strict" height="15" /></a>&nbsp;&nbsp;
			<a 	href="http://jigsaw.w3.org/css-validator/check/referer"
					title="website Valid CSS!">
				<img src="http://jigsaw.w3.org/css-validator/images/vcss" 
					 alt="website Valid CSS!" height="15" /></a>
		</div>
</div>


et voici la page contenant ce footer : http://www.aboutblank.free.fr/

Le script fonctionne parfaitement si ce n'est - comme le suggere le titre - que la fonction onLoad de la toute premeire division ne semble pas appeler montre('smenu3') puisque au chargement la totalité des div sont affiché...

pourquoi ??? Smiley sweatdrop
Modifié par ramy (11 Jan 2006 - 16:18)
Bonjour,
En fait, onload est un évènement spécifique au document. Le navigateur ne l'autorise que dans <body onload="..."> de façon certaine.
Certains navigateurs autorisent également <img onload="..." /> et <object onload="...">...</object>
Les autres éléments ignorent cet attribut car cela n'a aucun sens. ON peut charger un document, une image, un objet incorporé, mais pas un div ou un autre élément.
J'ai trouvé une alternative :
onload="javascript:montre('smenu3');" avait pour but d'initialiser le menu en mettant les 2 blocs #smenu1 et #smenu2 invisble (display:none), ce qui est maintenant le cas depuis css... Le probleme est que les 2 smenu concernait ne sont visibles que par les visiteurs disposant de javascript.

Mais puisque ce sont des liens tres peu vitaux pour le site Smiley langue
Cela deviendrait alors du javascript obstructif, chose à éviter. Tu peux certainement utiliser la syntaxe window.onload = function () { ... }
QuentinC a écrit :
Cela deviendrait alors du javascript obstructif, chose à éviter. Tu peux certainement utiliser la syntaxe window.onload = function () { ... }


elle est toujours utilisé, mais sous la forme :
onload = document.getelementbyid.style.display = 'block';