Place du curseur dans textarea pour ajouter un smiley
netwebzone
Messages postés55Date d'inscriptiondimanche 12 décembre 2004StatutMembreDernière intervention22 août 2008
-
13 mars 2005 à 17:40
Dji59
Messages postés1Date d'inscriptionjeudi 9 mars 2006StatutMembreDerniè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();
}
}
spider987
Messages postés33Date d'inscriptionlundi 21 janvier 2002StatutMembreDernière intervention26 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;
Dji59
Messages postés1Date d'inscriptionjeudi 9 mars 2006StatutMembreDerniè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;
}
}