innerHTML qui ne fonctionne pas
Posté : 18 oct. 2007, 11:42
Bonjour à tous,
je suis en train de créer pour une interface admin des petits liens qui insèrent du contenu dans un textarea pour faire comme du "bbcode" (sauf que moi j'insère de l'html...)
ALors le problème est le suivant, si je clique sur mes liens au départ avant de toucher au textarea, tout se passe bien, je peux insérer autant de fois que je veux des "<b></b>" et autres joyeusetés...
Le problème survient lorsque je tappe quelque chose dans le textarea, à ce moment là, les liens ne fonctionnent plus, et je n'ai aucun message d'erreur dans la console de firefox...
sans plus attendre, les codes:
le javascript:et l'html:
DOnc bon je ne sais pas trop comment faire pour débugger...
merci d'avance pour vos réponses
je suis en train de créer pour une interface admin des petits liens qui insèrent du contenu dans un textarea pour faire comme du "bbcode" (sauf que moi j'insère de l'html...)
ALors le problème est le suivant, si je clique sur mes liens au départ avant de toucher au textarea, tout se passe bien, je peux insérer autant de fois que je veux des "<b></b>" et autres joyeusetés...
Le problème survient lorsque je tappe quelque chose dans le textarea, à ce moment là, les liens ne fonctionnent plus, et je n'ai aucun message d'erreur dans la console de firefox...
sans plus attendre, les codes:
le javascript:
Code : Tout sélectionner
function miseEnForme(b){
txtarea=document.getElementById('message');
switch(b){
case 'b':
content='<b></b>';
break;
case 'i':
content='<i></i>';
break;
case 'u':
content='<u></u>';
break;
}
txtarea.innerHTML=txtarea.innerHTML+content;
}Code : Tout sélectionner
<p>
<label for="message" title="Contenu de la news" class="oblig">* Message :</label><br />
<a href="javascript:miseEnForme('b')" title="gras"><b>b</b></a>
<a href="javascript:miseEnForme('i')" title="italique"><i>i</i></a>
<a href="javascript:miseEnForme('u')" title="souligné"><u>u</u></a>
<textarea tabindex="2" id="message" name="message" rows="5" cols="40"></textarea>
</p>merci d'avance pour vos réponses