Place du curseur dans textarea pour ajouter un smiley

netwebzone Messages postés 55 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 22 août 2008 - 13 mars 2005 à 17:40
Dji59 Messages postés 1 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 9 mars 2006 - 9 mars 2006 à 19:15
Bonjour,

J'utilise cette fonction pour ajouter des smileys dans un textarea seulement le probleme c'est que ca les place toujours à la fin de ce qui est déja écrit et donc on ne peut pas le placer ou on veut...
Par exemple, c'est ecrit :
"Bonjour, ca va ? Je me présente"
Je clique sur un smiley et le code se met directement après "présente", comment faire si je veux le mettre après "ca va ?" par exemple ? Pourtant j'ai placé le curseur à l'endroit la...

Merci
A+

La fonction :
function emoticon(text) {
var txtarea = document.news.newst;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos; caretPos.text caretPos.text.charAt(caretPos.text.length - 1) ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}

2 réponses

spider987 Messages postés 33 Date d'inscription lundi 21 janvier 2002 Statut Membre Dernière intervention 26 janvier 2008
25 juil. 2005 à 05:05
il est peut etre trop tard pour repondre mais au cas ou sa fait trois fois que je vois cette question a je te repond aussi la meme chose :

pour ajouter le code d'un smiley dans une zone de text à l'endroit du curseur en cliquant sur une icone :

a mettre entre <head> et </head> :

<script language="JavaScript" type="text/JavaScript">
<!--
function addSmiley(codesmiley)
{
var msg = document.formulaire.zonetext; // Remplace formulaire par le nom de ton formulaire
// et zonetext par le nom de la textbox ou textarrea

// Compatible IE
if(document.selection)
{
msg.focus();
sel = document.selection.createRange();
sel.text = codesmiley;
document.step2.focus();
}
else if(msg.selectionStart || msg.selectionStart == "0")
{
var startPos = msg.selectionStart;
var endPos = msg.selectionEnd;
var chaine = msg.value;

msg.value = chaine.substring(0, startPos) + codesmiley + chaine.substring(endPos, chaine.length);
msg.selectionStart = startPos + codesmiley.length;
mdg.selectionEnd = endPos + codesmiley.length;
msg.focus();
}
else
{
msg.value += codesmiley;
msg.focus();
}
}
//-->
</script>

et le lien image a mettre ou tu veux dans ta page entre <gras> et :</gras>

[# ]

si tu as besoin d'aide mail moi

Spider987, on the web
0
Dji59 Messages postés 1 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 9 mars 2006
9 mars 2006 à 19:15
Salutation à vous.
Je suis totalement novice et j'avais le même problème, mon émoticone qui ne se place pas à l'endroit du curseur.
Alors j'ai fouillé sur internet et j'ai corrigé ce problème en remplaçant ceci:
function emoticon(text) {
var txtarea = document.commentaire.texte_form;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos; caretPos.text caretPos.text.charAt(caretPos.text.length - 1) ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}

par cela:
/*
** Cette fonction, codée par grummfy http://firesoftboard.free.fr/ ,permet l'ajout de smileys là où se trouve le curseur, ce
** qui s'avère extrèmement pratique. Un grand merci à lui :). OUI oui, un immense merci.
*/
function emoticon(smilies)
{
var myForm = document.commentaire.texte_form;
if (document.selection)
{
myForm.focus();
document.selection.createRange().text = smilies;
document.form_nom.focus();
}
else if (myForm.selectionStart)
{
var pos_debut = myForm.selectionStart;
var pos_fin = myForm.selectionEnd;
var chaine = myForm.value;
myForm.value = chaine.substring(0, pos_debut) + smilies + chaine.substring(myForm.selectionEnd, myForm.value.length);
}
else
{
myForm.value += smilies;
}
}

Et maintenant, ça fonctionne impeccable.
Dji...
0
Rejoignez-nous