Symptôme : lors de la définition d'une valeur pour innerHTML d'un élément, si le code HTML fourni contient des scripts js, ces scripts sont souvent invalides, ou ils sont valides sur certains navigateurs mais pas sur d'autres navigateurs.
Cause : différents navigateurs ont différentes manières de gérer les scripts insérés dans innerHTML. Après pratique, cela peut se résumer ainsi :
Pour IE, tout d'abord, la balise script doit avoir l'attribut defer, et deuxièmement, au moment de l'insertion, le nœud auquel appartient innerHTML doit être dans l'arborescence DOM.
Pour Firefox et Opera, le nœud auquel appartient innerHTML ne peut pas être dans l'arborescence DOM au moment de l'insertion.
Sur la base de la conclusion ci-dessus, la méthode de paramétrage général innerHTML est donnée :