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

netwebzone Messages postés 55 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 22 août 2008 - 15 mars 2005 à 20:52
matsky Messages postés 24 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 15 décembre 2009 - 9 janv. 2008 à 04:41
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

matsky Messages postés 24 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 15 décembre 2009
9 janv. 2008 à 04:40
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
0
matsky Messages postés 24 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 15 décembre 2009
9 janv. 2008 à 04:41
Cette ligne sert à rien :
<SCRIPT>objtxt = new textArea(document.aForm.aText);</SCRIPT>
Dsl.
0
Rejoignez-nous