Pb appel de fonction javascript innerhtml

Résolu
cla85 Messages postés 15 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 10 novembre 2010 - 31 mars 2010 à 18:13
cla85 Messages postés 15 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 10 novembre 2010 - 1 avril 2010 à 15:46
Bonjour,
Je vous explique :
J'ai créé une fonction qui affiche sur ma page avec la fonction innerhtml une div contenant des informations que l'utilisateur a saisi auparavant grâce à de l'ajax.
Dans cette div créé, il y a 2 boutons, correspondant chacun à une fonction javascript sous la forme nomfonction('param1, 'param2').
Le pb se situe dans IE (toutes versions) :
document.getElementById('tableau').innerHTML +=
'
...+ 
' 
[javascript:onclick=supprim(''+i+'',''+id_struct+'') Supprimer]...'


Pour firefox, il comprend les ' et les transforme en '.
mais IE ne comprend pas et sur le bouton j'ai uen fonction sous la forme :
supprim('i','id_struct')

Ce qui me génère alors des erreurs et bloquent les scripts exécutés après.

J'ai essayé d'inverser les ' et les " pour le
document.getElementById('tableau').innerHTML +="<div id='"+i+"'..."


Mais il ne comprend pas non plus.

Si vous avez déjà eu à faire à ce problème et avez trouver une solution, n'hésitez pas.

J'ai déjà un système de détection de browser mis en place pour d'autres scripts spécial IE, donc je pourrais p-e adapter quelque-chose.

Merci.

2 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
31 mars 2010 à 18:49
Bonjour,
il faut échapper les guillemets dans une chaine de caractères pour qu'ils soient pris en compte.
On échappe en mettant un anti-slash (\) devant, par exemple
<a href="javascript:onclick=supprim(\'" +i +" \', \'" +id_struct +"\')"

sur ce coup IE a raison.
d'une façon générale si la chaine commence par "
ALORS elle fini par "
, il semblerait que tu alternes, d'après ton code et je doute que FF l'accepte.
;O)
3
cla85 Messages postés 15 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 10 novembre 2010
1 avril 2010 à 15:46
Merci pour la réponse !
C'était bien un problème d'échappement en effet.
0