Rechercher : dans
Par :

[JAVASCRIPT] Bug IE - getelementbyid

Dernière réponse le 7 sep 2007 à 10:20:01 lingus, le 6 sep 2007 à 15:22:06 
 Signaler ce message aux modérateurs

Bonjour tout le monde,
J imagine que le problème a déjà été posé des milliers de fois mais je trouve pas de solution à celui-ci.
J'ai donc un tableau en HTML qui a un id="aloha". Quand je veux accéder à ce tableau en javascript, sous firefox il reconnait bien mon tableau et il peu y accéder (alert donne "[object HTML tableElement]").
Mais sous IE(7) il ne reconnait pas l'objet (alert donne "[object]").
Je precise qu'il n'y aucun autre lement dans ma page qui a "aloha" pour id ou name, et que je n ai aucun meta tage de ce nom non plus.
Quelqu'un aurait il une solution ?

code javascript :

function	Test()
{
	var	table			=	document.getElementsByName('aloha');
       alert(table);
}


code HTML:
<table id="aloha">
    <tr>
            <td><a href="javascript:;" onclick="Test();">[+] Test</a></td>
    </tr>
</table>
Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « [JAVASCRIPT] Bug IE getelementbyid » dans :
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Désinstaller IE 8 VoirDésinstallation d'IE 8 Vous avez installé IE8 pour le tester et vous souhaitez désormais revenir à une version précédente ? Voici la procédure à suivre pour les OS suivants : Windows Vista Windows XP Windows Vista Ouvrir le...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Introduction au langage Javascript VoirQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...

1

lingus, le 6 sep 2007 à 15:25:39

Erreur de frappe, j'étais en plein test c'est pas getElementsByName() mais bien getElementById() que j'utilise.
Désolé

Répondre à lingus

2

PhP, le 6 sep 2007 à 18:23:20

Bonsoir

Non, y'a pas de bug. C'est juste qu'IE ne type pas vraiment les objets et affiche toujours [Object]

La preuve :

<html>
<head>
<script type="text/javascript">
<!--

function space(size)
{
	var str="";
	for (var i = 0; i < size; i++)
	{
		str+=" ";
	}
	return str;

}


function getChildNodesInfo(node, level)
{	
	if (level==undefined) level = 0;

	// Parcours des noeuds enfants
	var txt = "";
	var i = 0;
	while (node)
	{
		txt = "- "+space(level*3)+"node["+i+"].nodeType = "+node.nodeType+"\n"+
			"- "+space(level*3)+"node["+i+"].nodeName = "+node.nodeName+"\n"+
			"- "+space(level*3)+"node["+i+"].nodeValue = "+node.nodeValue+"\n";

		if (node.firstChild) 
		{		
			level++;
			txt = txt +"\n"+getChildNodesInfo(node.firstChild,level);
		}
		node = node.nextSibling;
	}
	return txt;
}


function Test()
{
	var table = document.getElementById('aloha');


	// Parcours de tous les noeuds de l'élément DOM : gaffe ça peut planter IE !
	alert(getChildNodesInfo(table,1));
}


//-->
</script>
</head>
<body>

<table id="aloha">
    <tr>
            <td><a href="javascript:;" onclick="Test();">[+] Test</a></td>
    </tr>
</table>

</body>
</html>



Donc on parcours bien l'arbre DOM pour l'élément table aloha

Voilà PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...

Répondre à PhP

3

lingus, le 6 sep 2007 à 19:13:15

Ha oui, j ai donc mal identifié mon bug.
Car j'ai un script qui marche comme je veux sous firefox mais qui ne fait absolument rien sous IE.
Mais bon je regarderai ca demain.
Merci beaucoup pour tes précisions PhP

Répondre à lingus

4

 lingus, le 7 sep 2007 à 10:20:01
  • +1

J'ai enfin identifié mon véritable bug. Ca pourra peut etre aider les débutants en DOM comme moi.
En fait chose que je ne savais pas, sous IE lorsque l'on veut céer un tableau (<table>) en javascript il faut rajouter la balise <tbody>.
un petit lien qui explique ca mieux que moi : http://www.blognote-info.com/index.php?2007/03/23/561-petit-tuyau-pour-ie

Répondre à lingus
Collection CommentÇaMarche.net