Mettre du JS dans innerHTML

Fermé
sama.van Messages postés 7 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 1 août 2007 - 30 juil. 2007 à 02:11
sama.van Messages postés 7 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 1 août 2007 - 1 août 2007 à 00:17
Suite au post probleme de resize des balizes frame, je continu donc sur ma lancé du html DOM...

J'ai compris la creation/deletage/Edtion des Cells, mais un turc que je n'arrive vraiment pas à faire, c'est lancer une fonction dans mon innerHTML lors de la création d'une nouvelle "cellule".
J'ai pas mal parcourut le net, mais à chaque exemples ou problèmes rencontrés, c'est expliqué avec du html ou juste une string pour le innerHTML

Du coup je ne sais pas si ce que je demande c'est réalisable.

Ma simple fonction est la suivante :

function SAMA_InsertCellWithRowId(rowId, cellIndex, content)
{
	var cellToInsert = document.getElementById(rowId).insertCell(cellIndex)
	cellToInsert.innerHTML	= content
}


Elle est lancé par ceci :
SAMA_InsertCellWithRowId ("LeadRow", 1, "SAMA_BuiltNewsSection ()")

Au final il me print "SAMA_BuiltNewsSection ()" dans la nouvelle cellule créé.

Par contre si je colle ça direct le inner de cette façon :
cellToInsert.innerHTML	= SAMA_BuiltNewsSection ()

Il vire tout ce qui se trouve sur ma page lance correctement ma fonction (ya plus que ça...)

Donc voilà, je suis encore bloqué avec pas mal d'heures de passées à trouver une solution et recherche sur le net, j'en deviens désespéré.

Vous pouvez essayer par vous même sur cette page :
http://sama.van.free.fr/version4.0/index2.html
Le bouton "News" lancera l'exemple de
cellToInsert.innerHTML	= SAMA_BuiltNewsSection ()

Le bouton "3D" lancera l'exemple de
cellToInsert.innerHTML	= content

Voilà, merci d'avance à tout ceux qui passeront du temps à comprendre le chmil'blic ou alors me rappeler l'épisode que j'ai loupé...

3 réponses

Salut,
cellToInsert.innerHTML = SAMA_BuiltNewsSection ()

si tu ne mets pas SAMA_BuiltNewsSection () entre guillement, JS l'interprète comme une variable, essaye :

cellToInsert.innerHTML	= "SAMA_BuiltNewsSection ()"


Sinon je ne vois pas trop l'intérêt de coller une fonction JS dans une partie de page HTML ?, pourquoi ne pas la mettre à la construction de ta page et faire un appel conditionnel de fonction.
Mais il me manque peut être des éléments.
0
sama.van Messages postés 7 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 1 août 2007 1
31 juil. 2007 à 02:21
yop merci d'avoir proposé ^_^

Donc en gros mes fonctions faisaient direct des document.write (ici le code pond le contenu d'un Td en html)

Bref je rentre pas trop dans les détails car c'est compliqué à expliquer.

Pour faire bref, 100% de ce qui se trouve dans les Td est de la reconstition de html à partir du Javascript, du delete de Td et création de Td lorsque vous cliqué sur les boutons du menu.

Si vous avez le courage balayé mon code qui se trouve sur :
http://sama.van.free.fr/version4.0/index2.html

Cette fois les boutons news et 3D marchent :D

Ah et du coup la récupe de ma fonction (interprété comme une string) après le inner.html, j'ai collé un eval() ^_^
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
31 juil. 2007 à 02:55
Pas mal !

+ N'oublie pas de refermer la </table>
Mets des “ type="text/javascript"” à tous tes scripts.
Pas besoin de “px” dans “<td width = "600px">”
0
sama.van Messages postés 7 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 1 août 2007 1
1 août 2007 à 00:17
Ptin oue en effet O_o..
Ba ce qui est dingue avec le html c'est qu'il éxécute tant qu'il ne rencontre pas une erreur. Alros qu'en général, le langage que j'utilise (Mel Script) parse d'abord tout et se gaufre dès le début s'il manque un truc!

Donc t'es allé faire un tour alors :D

Merci en tout cas! Je rejouterai les trucs qui manquent donc...
0