11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai créé ce javascript ci-dessus pour un menu afin de leur affecter les evements :
omouseover
onmouseout

cela fonctionne trés bien sous IE6.0 et firefox mais malheureusement pas sous IE5.0 et IE5.5 ! ;-(

quelqu'un a t'il une idée pour que cela fonctionne ?

merci d'avance


voici l'extrait de code html concerne


<div id="middle_nav">
	  <ul>
<li><a href="#" id="middle_menu1">Squaliformes</a>
	<ul id="middle_menu1s">
		<li><a href="#">Echinorhinid&eacute;s Echinorhinid&eacute;s Echinorhinid&eacute;s</a></li>
		<li><a href="#">Oxynotid&eacute;s Echinorhinid&eacute;s Echinorhinid&eacute;s</a></li>

		<li><a href="#">Squalid&eacute;s</a></li>
	</ul>
</li>

<li><a href="#" id="middle_menu2">Orectolobiformes</a>
	<ul id="middle_menu2s">
		<li><a href="#">Parascylliid&eacute;s</a></li>
		<li><a href="#">Brachaelurid&eacute;s</a></li>

		<li><a href="#">Orectolobid&eacute;s</a></li>
		<li><a href="#">St&eacute;gostomatid&eacute;s</a></li>
		<li><a href="#">H&eacute;miscylliid&eacute;s</a></li>
	</ul>
</li>
	

	<li><a href="#" id="middle_menu3">Carcharhiniformes</a>
		<ul id="middle_menu3s">

			<li><a href="#">Scyliorhinid&eacute;s</a></li>
			<li><a href="#">Proscylliid&eacute;s</a></li>

			<li><a href="#">Pseudotriakid&eacute;s</a></li>
			<li><a href="#">Leptochariid&eacute;s</a></li>
			<li><a href="#">H&eacute;migal&eacute;id&eacute;s</a></li>
			<li><a href="#">Triakid&eacute;s</a></li>

			<li><a href="#">Sphyrnid&eacute;s</a></li>
			<li><a href="#">Carcharhinid&eacute;s</a></li>

		</ul>
	</li>
</ul>
        </div>



et voici le javascript :


// *--- debut variables a modifier par l'utilisateur--- * //
//nom des pages à ouvrir
forum="forum.htm"
shop="shop.htm"

//quel menu 'middle_' ou 'header_' ?
menu="middle_"
// *--- fin variables a modifier par l'utilisateur--- * //


// designation de la zone a scanner
var cible = document.getElementById(menu+'nav')

//recensement de tous les elements a de la zone cible uniquement
if (document.getElementsByTagName)
	var x = cible.getElementsByTagName('a');

	
//recensement de tous les elements ul de la zone cible uniquement
if (document.getElementsByTagName)
	var z = cible.getElementsByTagName('ul');

var m
var compt
//selection des ul des sous menus uniquement et affectation de leurs evenements 
for (var i=0;i<z.length;i++)
{
if (z[i].getAttributeNode("id") && z[i].getAttributeNode("id").value!="") { 
z[i].onmouseout = function() {compt=setTimeout("document.getElementById(m+'s').style.display='none'; document.getElementById(m).className='middle_nav_notselected'",temps)}
z[i].onmouseover = function() {clearTimeout(compt)}
}
}

n=0
temps=1000
//selection des liens du menu de niveau 1 et affectation de leurs evenements 
for (var i=0;i<x.length;i++)
{
if (x[i].getAttributeNode("id") && x[i].getAttributeNode("id").value!="") {
valeurid=x[i].getAttributeNode("id").value
n++
recherche=valeurid.indexOf('smenu',0)
if (recherche==-1) {ms=recherche;x[i].onclick = function() {init();m=this.getAttributeNode("id").value; document.getElementById(m+"s").style.display='block'; document.getElementById(m).className='middle_nav_selected'}}
if (recherche==-1) {ms=recherche;x[i].onmouseout = function() {compt=setTimeout("document.getElementById(m+'s').style.display='none'; document.getElementById(m).className='middle_nav_notselected'",temps)}}
if (recherche==-1) {ms=recherche;x[i].onmouseover = function() {clearTimeout(compt)}}
}
}

//initialisation du menu (cache tous les sous menus)
function init() {
	for (var i = 1; i<=n; i++) {
		if (document.getElementById(menu+'menu'+i+'s')) {document.getElementById(menu+'menu'+i+'s').style.display='none'; document.getElementById(menu+'menu'+i).className='middle_nav_notselected'}
	}
tc=1
}
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modifié par coolsteven (12 Sep 2005 - 08:36)
Bonjour coolsteven et bienvenue sur ce forum.

Est-ce que tu pourrais baliser ton code avec le BBCode [ code][/code ] (sans les espaces) ?

Ça le rendra plus lisible et ça évitera de déformer le forum Smiley cligne
Bonjour,

a oui vraiment désolé

j'ai explosé le site a cause de mon code

mais comment modifier a nouveau mon message dans ce forum?

merci d'avance
coolsteven a écrit :
Bonjour,

mais comment modifier a nouveau mon message dans ce forum?


Bonjour,
Simplement en cliquant sur l'icone "éditer" se trouvant sur la 1ère ligne de ton message. Smiley cligne

Concernant ta question, c'est compliqué quand mème, j'ai essayé ton code tel que, mais ça ne donne pas grand chose.
A essayer :
Il me semble que parfois IE5 va reconnaitre
getElementsByTagName('UL');
(tag en majuscule)
Il me semble aussi que
z.getAttributeNode("id") 
peut-être remplacé par
z.id

mais c'est p'têt des conneries Smiley biggol
bon courage
coolsteven a écrit :

je vais essayer et je vous tiendrais au courant

Et ? C'est [Résolu] ?

PS : On attend toujours que tu balises ton code avec le BBCode [ code][/code ] (sans les espaces)...