Javascript : ajout d'un texte dans un textear

Bonjour,

Voilà j'aimerais simplement intégrer automatiquement des smileys dans mon formulaire en cliquant sur leur image.

J'ai récupéré ce script là qui marche parfaitement sous IE (positionnant le texte à l'endroit du curseur), mais il ne marche pas sous Firefox ...

Sous ce dernier, il remplace tout simplement le texte précédent par le texte à inscrire.

Sauriez vous comment insérer sans effacer le texte précédent, sous firefox ? (si possible en insérant à l'endroit du curseur, mais sinon je suis quand meme preneur)

Merci ;-)

Voici mon code :

<HTML>
<HEAD>
<TITLE>Insert</TITLE>
<SCRIPT LANGUAGE="JavaScript">


function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

function insertAtCaret (textEl, text)
{
	if (textEl.createTextRange && textEl.caretPos)
	{
		var caretPos = textEl.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
	}
	else
		textEl.value  = text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<textarea rows="5" name="zonetexte" cols="20" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> C'est le début du texte.</textarea>
<INPUT TYPE="button" STYLE="font-family:courier;" VALUE="Ajouter" ONCLICK="insertAtCaret(this.form.zonetexte,'LE TEXTE');">
</FORM>
</BODY>
</HTML> 
Configuration: Windows XP
Firefox 2.0.0.14

1 réponse

  1. bon, bein encore une fois trouvé avant :-p

    Tout est dans ce script, très bien fait !

    http://actuel.fr.selfhtml.org/articles/javascript/bbcode/index.htm
    0