Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 2012
-
22 août 2006 à 08:17
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 2012
-
27 août 2006 à 16:21
Bonjour à tous,
j'ai une question simple : connaissez-vous des bugs qui expliqueraient que sous Internet Explorer je n'arrive pas à compter le nombre d'objets ayant "artiste" pour Name ? Ca me renvoie toujours 0. Alors qu'évidemment ça marche parfaitement sous Firefox.
var p=document.getElementsByName('artiste').length;
alert(p);
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutModérateurDernière intervention23 décembre 200823 22 août 2006 à 08:30
Salut,
La fonction getElementsByName() utilise en fait l'attribut ID et non le NAME dans IE.
Rajoute ce qui est en gras.
Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2006 à 16:14
et si c'est ces "sub" c'est un sous ensemble de artiste...
id="artiste_1"
id="morceau_1_1"
id="morceau_1_2"...
id="artiste_2"
id="morceau_2_1"
id="morceau_2_2"...
... on en tire les noms que l'on veut...
cordialement Bul SiteM'écrire
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 25 août 2006 à 10:04
Bonjour
Pour mettre mon grain de sel :
On ne peut pas vraiment parler de bug, dans la mesure où name n'est pas un argument standard de la balise <tr>. Pas étonnant donc que certains navigateurs n'acceptent pas de retourner quelquechose par getElementsByName. cf ici : http://fr.selfhtml.org/html/reference/attributs.htm#tr
(alors que id est un argument "universel", c'est à dire qu'il est utilisable pour quasiment toutes les balises HTML. Mais tu as raison, en principe un id est unique)
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 22 août 2006 à 15:27
Bonjour, merci de m'avoir répondu aussi rapidement.
Après vérification, vous avez tous les deux raisons :
econs --> j'ai testé avec les id, c'est effectivement ça qu'il compte. Mais c'est embêtant, car théoriquement on n'est pas censé donner le même ID à plusieurs objets, même si ça marche.
Bultez --> getElementByName marche dans d'autres cas, je l'utilise moi-même souvent.
Alors je vous livre deux morceaux de code si vous voulez faire le test :
Le premier est celui de ma page en entier, le get Name ne marche pas.
Le deuxième est le même code où j'ai supprimé tout ce qui était superflu par rapport au getName. Et là ça marche.
Il y a donc une interférence quelque part. Je n'ai malheureusement pas le temps techniquement de faire un débuggage, donc je vais me débrouiller avec les ID.
J'attends un petit peu avant d'accepter vos réponses, si vous aviez d'autres suggestions avant. Merci encore
PS: pour tester le code, appuyez sur le deuxième P
function check(){
var p=document.getElementsByName('artiste_1_sub').length;
alert(p);
}
</script>
</head>
<tr id=\"artiste_1\">
] Sheryl Crow,
,
,
,
<tr name=\"artiste_1_sub\" id=\"morceau_1\" onmouseover=\"highlight('1');\" onmouseout=\"unhighlight('1');\" onclick=\"select('1');\">
Strong enough,
Tuesday night music club,
3,
su,
<tr name=\"artiste_1_sub\" id=\"morceau_2\" onmouseover=\"highlight('2');\" onmouseout=\"unhighlight('2');\" onclick=\"select('2');\">
Strong enough,
Tuesday night music club,
3,
su,
<tr name=\"artiste_1_sub\" id=\"morceau_3\" onmouseover=\"highlight('3');\" onmouseout=\"unhighlight('3');\" onclick=\"select('3');\">
Strong enough,
Tuesday night music club,
3,
su,
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2006 à 16:00
mais plutôt que getelementByName,
pourquoi ne pas utiliser formulaire.artiste_1_sub ?
et si 1 "est variable" formulaire["artiste_"+numero+"_sub"]...
par exemple.
là syntaxe valide et ça fonctionne pour tous (?) les navigateurs
mais enfin... pas satisfaisant pour getElementByName.
cordialement Bul
Site M'écrire
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 22 août 2006 à 16:05
Merci Bultez, j'essaie tout de suite !
je n'ai pas du tout les réflexes Javascript : moi je me voyais partir dans le dom ou les champs cachés... à tout de suite
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2006 à 16:09
moi aussi, j'ai dit une connerie (**)
même avec frm["nom"] avec IE, çà ne semble pas marcher.
met des id différents ?
id="
"artiste_1_sub", id"="artiste_2_sub",....
et une boucle
i=1;
while document.getElementById("artiste_"+i+"_sub")
{
traitement de document.getElementById("artiste_"+i+"_sub")
i++;
}
cordialement Bul
SiteM'écrire ** c'est pas la 1ère, mais je puis affirmer
que ce ne sera pas la dernière.
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 22 août 2006 à 17:04
Tu m'as sauvé la vie Bultez ! et c'est pas la première fois :^)
Effectivement la solution était de jouer sur les variations d'ID.
Merci infiniment pour le temps que tu as passé sur mon problème.
Par contre, message à Internet Explorer : si un jour je te croise dans la rue... ^^
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 23 août 2006 à 10:04
merci du retour Evangun,
sauvé la vie peut-être pas....
tous les navigateurs ont "des défauts",
certains de ces défauts peuvent (?) être considirés comme des "bugs".
cordialement Bul
SiteM'écrire
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 27 août 2006 à 16:21
Merci Roro, j'avais justement pensé à une fonction comme celle-là, et getElementByType par exemple ne marchait pas. Je pense que celle-ci me servira souvent. Il me semble en revanche que le .all n'est pas très correct niveau dom, non ? enfin c'est pas grave, je la réécrirai un jour s'il le faut
merci !