PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > <table> innerHTML
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
<table> innerHTML

Réponse
 
LinkBack Outils de la discussion
Vieux 30/06/2007, 22h11   #1 (permalink)
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut <table> innerHTML

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?
  Réponse avec citation
Vieux 30/06/2007, 22h30   #2 (permalink)
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: <table> innerHTML

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
  Réponse avec citation
Vieux 01/07/2007, 00h48   #3 (permalink)
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: <table> innerHTML

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


  Réponse avec citation
Vieux 02/07/2007, 00h05   #4 (permalink)
Rakotomandimby (R12y) Mihamina
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: <table> innerHTML (Bingo!)

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".
  Réponse avec citation
Vieux 02/07/2007, 09h20   #5 (permalink)
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: <table> innerHTML (Bingo!)

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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 00h34.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12292 seconds with 13 queries