Ca marche sous firefox mais pas sous IE!!!!

Signaler
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
-
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
-
J'ai voulu faire un petit menu style XP mais sans image pour l'instant

donc ma petite affaire marche sous mozilla firefox mais pas sous IE!!!

de plus IE produit une erreur javascript sur 'document.getElementById(...)' alors qu'il l'a éxécutée quelques lignes plus haut!



voici la fonction qui pose problème ele est appelée pédriodiquement par un setInterval :

function redimensionner() {

menu = document.getElementById(id);

if( menu.style.height "" ) { menu.style.height height }

taille = parseInt(menu.style.height )+depl;

if( taille < 0 ) {

taille = 0;

}

document.getElementById(id).style.height = taille

if( taille == 0 ){

depl = 0

menu.style.visibility = "hidden"

menu.style.position = "absolute"

clearInterval(timer)

timer = 0

}

if( taille >= height ) {

depl = 0

menu.style.height = height

clearInterval(timer)

timer = 0

}



if( depl < 0 ) {

item_id = id+'_'+Math.ceil(taille / (hpl+4) - 1)

item = document.getElementById(item_id)

if( item != null ) {

item.style.visibility = "hidden"

}

} else {

item =
document.getElementById(id+ '_' +Math.floor(taille / (hpl+4) - 1))

if( item !=null ) {

item.style.visibility = "visible"

}

}

}



le code HTML est généré par la fonction suivante :

function generer() {

document.write( '\r\n')

document.write(
'----
'+ libelle + ', , \r\n')

document.write( '----
\r\n')

document.write( '
\r\n')

for( i=0; i<nbLiens; i++ ) {

link = liens[i]

document.write( '<table border="0" id="' + id + '_' + i
+'">----, </td>'+link.text+'
\r\n' )

}

document.write( '
\r\n')

document.write( '</td></tr>\r\n')

document.write( "</table>\r\n
")

genere = 1

}



donc IE plante sur la ligne 'item = document.getElementById(item_id)'

l'effet désiré est un redimensionnement progressif du menu avec dispartion( ou apparition ) des item du menu un par un.

si vous voulez lla source en entier, j'aviserai, je ne pense pas que je
puisse la mettre dans les codes sources alors qu'elle n'est pas encore
fonctionnelle





voila maîtres du javascript je fais appel à vous! Pourquoi mon code ne marche pas sous IE?

Petite précision Firefox v1.0.3 et IE v6.0.2800.1106

2 réponses

Messages postés
8
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
3 mai 2005

je ne suis pas certain mais il me semble que l'argument de
getElementById est une chaine de caracrtere hors là tu lui passes
item_id qui est construit à partir de id (d'ailleurs d'où vient-il ce
id?).

je pense que c'est le format de item_id qui cloche.
Messages postés
179
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
21 mai 2014
2
vi excuse moi, id est une variable de type texte ( je l'ai fixe a "test" pour faire mes tests )