eccole qua, devi usare queste due funzioni
la prima memorizza la posizione corrente, puoi associarla ad esempio ad eventi tipo onBlur, onChange etcetc, in maniera da avere la posizione sempre aggiornata.L'argomento objTxt e' la textarea ovviamente
function storeCaret (objTxt) {
if (objTxt.createTextRange)
objTxt.caretPos = document.selection.createRange().duplicate()
}
Quest'altra invece inserisce il testo che passi come 'text' nella posizione precedentemente memorizzata dall'altra funzione. objTxt e' sempre la textarea in questione.
function insertAtCaret (objTxt, text) {
if (objTxt.createTextRange && objTxt.caretPos) {
var caretPos=objTxt.caretPos;
caretPos.text=caretPos.text.charAt(caretPos.text.l ength - 1) == ' ' ?text + ' ' : text;
}
else
objTxt.value = text;
}
un piccolo esempio:
<textarea name='testCaret'
onBlur='storeCaret(this)'
onChange='storeCaret(this)'
//...altri eventi></textarea>
<input type='button' onClick='insertAtCaret(document.form.testCaret,"un testo di prova")'>
poi ovviamente lo adatterai alle tue esigenze, fammi sapere se e' tutto ok, ho scritto in volata e magari ho postato qualche cavolata
ps:scusa il ritardo![]()

Rispondi quotando