|
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour à tous.
J'ai découvert un "truc" cette nuit: faire un innerHTML d'un <table> n'est pas conforme. Prenons un tableau: http://infogerance.asso-polyvalente....au/m.js?rev=16 Une fonction pour afficher ce tableau: http://infogerance.asso-polyvalente....hage.js?rev=16 Et le code HTML: http://infogerance.asso-polyvalente....ex.html?rev=16 Dans cet état là, le code fonctionne sous Firefox2 (enfin... Iceweasel) mais Konqueror me jette avec un "DOM Exception 7" Par contre, si comme indiqué: http://infogerance.asso-polyvalente....c/changeset/17 Je fais un innerHTML d'un <div>, tout se passe bien. De quels éléments (portent-ils un "nom" particulier?) ne peut-on pas modifier le innerHTML? |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
Mihamina (R12y) Rakotomandimby a écrit :
> Bonjour à tous. > > J'ai découvert un "truc" cette nuit: faire un innerHTML d'un <table> n'est > pas conforme. tout dépend de ... > Prenons un tableau: > http://infogerance.asso-polyvalente....au/m.js?rev=16 > > Une fonction pour afficher ce tableau: > http://infogerance.asso-polyvalente....hage.js?rev=16 J'aimerais bien savoir ce que représente 't' dans : var largeur=t[0].length; est-ce bien t=document.getElementById('monTable').getElementsB yTagName('TBODY')[0].rows; ? > Et le code HTML: > http://infogerance.asso-polyvalente....ex.html?rev=16 où il est le code html ? > Dans cet état là, le code fonctionne sous Firefox2 (enfin... Iceweasel) mais > Konqueror me jette avec un "DOM Exception 7" Normalement innérer le html d'un table ça fonctionne bien. Faut juste penser à échapper les / essaie avec : resultat += "<\/td>"; au lieu de : resultat += "</td>"; et pareil pour "</th>" et "</tr>" ainsi que "</table>" d'ailleurs ça m'étonne que FF ne trouve pas à redire. Et le plus simple est encore de zapper ces balises fermantes qui peuvent être facultatives > Par contre, si comme indiqué: > http://infogerance.asso-polyvalente....c/changeset/17 > Je fais un innerHTML d'un <div>, tout se passe bien. Là j'ai rien compris à ce qu'on me veut, d'autant qu'on n'y parle pas de DIVs ... Pense à changer : <script language="JavaScript"> par : <script type="text/javascript"> et pendant que tu y es essaie d'utiliser un doctype et qu'il soit valide. > De quels éléments (portent-ils un "nom" particulier?) ne peut-on pas > modifier le innerHTML? Ha Ha ! les dangers du innerHTML ... ici : http://stephane.moriaux.perso.orange...nerHTML_danger (où l'on voit que c'est OK pour un table mais pas pour un input) -- Stephane Moriaux et son (moins) vieux Mac |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
ASM - <4686cb8c$0$27405$ba4acef3@news.orange.fr> :
>> J'ai découvert un "truc" cette nuit: faire un innerHTML d'un <table> >> n'est pas conforme. > > tout dépend de ... > >> Prenons un tableau: >> http://infogerance.asso-polyvalente....au/m.js?rev=16 >> >> Une fonction pour afficher ce tableau: >> http://infogerance.asso-polyvalente....hage.js?rev=16 > > J'aimerais bien savoir ce que représente 't' dans : > var largeur=t[0].length; Dans t, il y a: http://infogerance.asso-polyvalente....i_tableau/m.js >> Et le code HTML: > où il est le code html ? As tu suivi le lien? > Et le plus simple est encore de zapper ces balises fermantes qui peuvent > être facultatives Arretes... >> Par contre, si comme indiqué: >> http://infogerance.asso-polyvalente....c/changeset/17 >> Je fais un innerHTML d'un <div>, tout se passe bien. > Là j'ai rien compris à ce qu'on me veut, d'autant qu'on n'y parle pas de > DIVs ... Je t'explique: Plutot que de modifier le innerHTML d'un table, j'ai "encapsulé" le table dans un div, et c'est le innerHTML du div que je modifie en table. J'aurais préféré le premier cas. > Pense à changer : > <script language="JavaScript"> > par : > <script type="text/javascript"> > > et pendant que tu y es essaie d'utiliser un doctype > et qu'il soit valide. > >> De quels éléments (portent-ils un "nom" particulier?) ne peut-on pas >> modifier le innerHTML? > > Ha Ha ! les dangers du innerHTML ... ici : > http://stephane.moriaux.perso.orange...nerHTML_danger |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
ASM - <4687000d$0$25939$ba4acef3@news.orange.fr> :
>> Plutot que de modifier le innerHTML d'un table, j'ai "encapsulé" le >> table dans un div, et c'est le innerHTML du div que je modifie en table. >> J'aurais préféré le premier cas. > Chez moi le 1er cas fonctionne partout excepté avec Mon IE5 Mac qui ne http://dev.rubyonrails.org/ticket/8182 C'est un "bug connu". Bon du coup, moi je dois faire autrement pour afficher un tableau. -- "C'est très facile d'avoir des idées de partage quand on n'a rien." PatriceKARATCHENTZEFF, à propos de certaines idées "de gauche". |
|
|
|
#5 (permalink) |
|
Messages: n/a
Hébergeur: |
Rakotomandimby (R12y) Mihamina a écrit :
> ASM - <4687000d$0$25939$ba4acef3@news.orange.fr> : > >>> Plutot que de modifier le innerHTML d'un table, j'ai "encapsulé" le >>> table dans un div, et c'est le innerHTML du div que je modifie en table. >>> J'aurais préféré le premier cas. >> Chez moi le 1er cas fonctionne partout excepté avec Mon IE5 Mac qui ne > > http://dev.rubyonrails.org/ticket/8182 > C'est un "bug connu". ce qui n'empêche pas mon IE de ne rien comprendre à : t.push(new Array(8894,31981,31960)); > Bon du coup, moi je dois faire autrement pour afficher un tableau. J'utilise le moins possible innerHTML, cependant il me semble l'avoir vu utiliser pour des tables et, en effet, c'est pour insérer des tables complets (y compris les balises table). -- Stephane Moriaux et son (moins) vieux Mac |
|
![]() |
| Outils de la discussion | |
|
|