Parce que ta fonction est générée dynamiquement, pas à cause de l'objet qui a le name ...Envoyé par TSalm
Essaye en faisant un fonction "normale" (sans essayer de redéfinir getElementsByName).
A+
Parce que ta fonction est générée dynamiquement, pas à cause de l'objet qui a le name ...Envoyé par TSalm
Essaye en faisant un fonction "normale" (sans essayer de redéfinir getElementsByName).
A+
Pour tout savoir sur l'utilisation du forum
En postant votre message, n'oubliez pas les Règles du Club.
bon, je débarque un peu dans ta discussion....
Si j'ai bien compris tu cherches à accèder à des éléments créé dynamiquement par leur name sous IE getElementsByname te cause des soucis.
Je peux voir ton script qui créé tes éléments ?
Et puis si ça t'intéresse j'ai IE5![]()
une sombre histoire de .name en majuscule ou minuscule tu penses?
Faut pas avoir honte d'avoir IE5, faut juste avoir honte de n'avoir QUE IE5
J'ai posté du code pour test (mon 3 message dans ce fil)
Pour voir la différence, il suffit d'enlever la redefinition du getElementsByName
Dans un de tes posts, pourquoi dis-tu que la recherche par tagName ne te conviens pas ?
Le script est assez rapide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function rechercheParNom(nomRecherche) { var listeEl = new Array("select","option","input"); var tab, lListe, lTab, i, j; lListe = listeEl.length; for (i=0; i<lListe; i++) { tab = document.getElementsByTagName(listeEl[i]); lTab = tab.length; for (j=0;j<lTab; j++) { if (tab[j].name==nomRecherche) alert(tab[j].tagName+" "+tab[j].name); } } }
J'ignore si ça peut t'aider, as-tu lu cette remarque, que j'ai posté :
http://www.developpez.net/forums/sho...d.php?t=284119 (il y a divers liens dans ce post) ?
J'ai aussi Firefox![]()
Salut à tous,
et merci pour vos réponses.
Ton code est excellent Auteur, il permet de lacher simplement la fonction récursive, il faut ajouter tout les types de tags possibles (du plus fréquent au moins et c'est bon).
Je vais voir ça tout de suite.
merci,
TSalm
ps: au fait, il fonctionne pas ou pas mon code sous IE5 ?
Quel optimismeEnvoyé par TSalm
![]()
Pour tout savoir sur l'utilisation du forum
En postant votre message, n'oubliez pas les Règles du Club.
![]()
![]()
![]()
Ca fonctionne parfaitement avec un gain de vitesse carrément hallucinant !!
Voici le code final de la fonction :
Génial Auteur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 // ============ // getElementsByName pour IE : // Définition d'un getElementsByName pour IE : // Raison: getElementsByName de IE ne trouve pas les objets dynamiques // Testé avec IE6:ok // cherche un élément par son nom dans le DOM // (sort dès qu'un est trouvé !) var listeEl=new Array(); function rechercheParNom(nomRecherche) { //var listeEl = new Array("select","input","option","td","tr","table"); var tab,lListe,lTab,i,j; lListe = listeEl.length; for (i=0; i<lListe; i++) { tab = document.getElementsByTagName(listeEl[i]); lTab = tab.length; for (j=lTab-1;j>=0; j--) { if (tab[j].name==nomRecherche) return tab[j]; } } return null; } function Init_IE_getElementsByName() { // pour optimisation: mettre les tagName dans cette liste du plus frequent au moins: listeEl="SELECT,INPUT,OPTION,A,ABBR,ACRONYM,ADDRESS,APPLET,AREA,B,BASE,BASEFONT,BDO,BGSOUND,BIG,BLOCKQUOTE,BODY,BR,BUTTON,CAPTION,CENTER,CITE,CODE,COL,COLGROUP,COMMENT,CUSTOM,DD,DEL,DFN,DIR,DIV,DL,!DOCTYPE,DT,EM,EMBED,FIELDSET,FONT,FORM,FRAME,FRAMESET,HEAD,hn,HR,HTML Comment,HTML,I,IFRAME,IMG,INS,KBD,LABEL,LEGEND,LI,LINK,LISTING,MAP,MARQUEE,MENU,META,nextID,NOBR,OBJECT,OL,P,PLAINTEXT,PRE,Q,RT,RUBY,S,SAMP,SCRIPT,SMALL,SPAN,STRIKE,STRONG,SUB,SUP,TABLE,TBODY,TD,TEXTAREA,TFOOT,TH,THEAD,TITLE,TR,TT,U,UL,VAR,XMP".split(/[,]/); } if (navigator.appName == "Microsoft Internet Explorer") { // init Init_IE_getElementsByName(); // redef de la méthode : document.getElementsByName = function(str) { o=rechercheParNom(str); if (o) { return new Array(o); } return undefined; } } // FIN getElementsByName==========
En ne priant pas pas pour pas qu'il fonctionne pas sous IE5![]()
Je teste tous mes script avec IE5(vieux matos oblige) et Firefox :
ce script fonctionne donc avec IE5 (na !)
[edit]
Donc tu n'es donc pas obligé de détecter le navigateur sur lequel tu te trouves
[/edit]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager