Javascript: compatibilité avec IE

Résolu/Fermé
Trema - Modifié par Trema le 14/07/2011 à 16:15
 Trema - 14 juil. 2011 à 18:00
Bonjour,

ce script semble poser problème lorsqu'il est interprété par IE:
var longueurMenu = window.document.getElementsByName("submenuitem").length; 
 for(var i = 0;i <= longueurMenu;i++) 
 { 
  //window.document.getElementsByName("submenuitem").item(i).style.visibility = "hidden"; 
  window.document.getElementsByName("submenuitem").item(i).style = "visibility:hidden;"; 
 } 
}


L'erreur renvoyée par ie porte a priori sur getElementsByName, ou sur item()...
Avez vous d'autres suggestions?

Notez que la ligne commentée fonctionne parfaitement sur FF... évidemment.

Merci par avance

edit: je vous donne l'erreur renvoyée par IE:

Détails de l'erreur de la page Web

Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; LUDI2; GTB7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET4.0C; SRS_IT_E8790272B276555B3FAC92; Hotbar 11.0.175.0)
Horodateur : Thu, 14 Jul 2011 14:14:06 UTC


Message : 'window.document.getElementsByName(...).item(...)' a la valeur Null ou n'est pas un objet.
Ligne : 25
Caractère : 3
Code : 0
URI : http://www.xp-audio.net/javascript.js


Message : Objet requis
Ligne : 11
Caractère : 3
Code : 0
URI : http://www.xp-audio.net/javascript.js




3 réponses

Aïe pardon, j'ai oublié de préciser ceci:

cette fonction doit affecter un groupe d'éléments entier et au même moment. Or j'utilise déjà l'id de chaque élément à d'autres fin et celui ci doit rester unique.

Merci tout de même de la réponse :)
3
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
14 juil. 2011 à 16:50
A quoi correspond submenuitem ?
0
C'est un tableau qui contient les éléments d'un sous menu.
Le principe entier du script est de cacher tous les sous menus de la page au chargement.
0
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
14 juil. 2011 à 17:00
je vois pas ce qui t'empeche d'utiliser l'id de tes éléments,met ton tableau dans un div et utile le div pour cacher l'ensemble
0
Bon, affaire résolue
Ajouter un DIV et le cacher ne fonctionnait pas non plus (je n'ai pas compris pourquoi).

Donc j'ai juste ajouté un array global au .JS, lequel stocke les id de chaque "menuitem".
Esuite une boucle pour cacher tous les menuitem avec les id stockés dans l'array.

Un peu de bricolage ne fait jamais de mal.

Merci beaucoup LordZero pour tes réponses
1
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
14 juil. 2011 à 16:41
Je te conseille de mettre un id a la place d'un name et d'utiliser le getElementById.

Il me semble que window sert a rien ici.

ex : var longueurMenu = document.getElementById('submenuitem').length;
0