Ajouter ou l'on veut dans textarea, ou l'on place le curseur...

Signaler
Messages postés
55
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
22 août 2008
-
Messages postés
24
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
15 décembre 2009
-
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 :

Code:,
----

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

Messages postés
24
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
15 décembre 2009

Salut essaie çà, en espérant que ça t'aide!
J'ei testé sous IE 6 et FF 2 ça roule vu de loin.

<HTML>
<HEAD>
<SCRIPT>
//Pour IE
function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
//Pour IE et FF
function insertAtCaret (textEl, text) {
//IE
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text caretPos.text.charAt(caretPos.text.length - 1) ' ' ?
text + ' ' : text;
} //FF
else if(textEl.selectionStart && textEl.selectionEnd){
if(textEl.selectionStart==textEl.selectionEnd) {
var tmpTxt = textEl.value.substr(0,textEl.selectionStart)+text+textEl.value.substr(textEl.selectionEnd,textEl.value.length);
textEl.value = tmpTxt;
}else {
var subs = textEl.value.substr(textEl.selectionStart, textEl.selectionEnd);
textEl.value = textEl.value.replace(subs,text);
}
}else //Pour autre si pas compat
textEl.value += text;
}
</SCRIPT>
</HEAD>

<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft"
ONSELECT="storeCaret(this);"
ONCLICK="storeCaret(this);"
ONKEYUP="storeCaret(this);"
ONBLUR="storeCaret(this);">
Kibology for all.
All for Kibology.
</TEXTAREA>






</FORM>
<SCRIPT>objtxt = new textArea(document.aForm.aText);</SCRIPT>

</HTML>

Shoot@gain
Messages postés
24
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
15 décembre 2009

Cette ligne sert à rien :
<SCRIPT>objtxt = new textArea(document.aForm.aText);</SCRIPT>
Dsl.