mam taki nietypowy problem. Mam pole tekstowe w którym zaznaczam tekst - po kliknięciu w przycisk zastępuje zaznaczenie innym tekstem.
Kod
function replaceselection(textarea, text)
{
textarea.value = (textarea.value).substring(0, textarea.selectionStart)
+ text + (textarea.value).substring(textarea.selectionEnd);
}
{
textarea.value = (textarea.value).substring(0, textarea.selectionStart)
+ text + (textarea.value).substring(textarea.selectionEnd);
}
Wszystko działa sprawie, ale jest jeden irytujący problem - jeśli pole tekstowe jest na tyle długie, że wymaga przewijania to po zastąpieniu tekstu pole tekstowe "przewija" się tak, że ląduje na początku tekstu. Ja natomiast chciałbym pozostać (lub wrócić) do tego fragmentu. Próbowałem zaznaczyć daną pozycję - udało się - jest zaznaczenie ale i tak ląduje na początku tekstu...
Do zaznaczenia fragmentu używam takiej funkcji:
Kod
function setSelRange(inputEl, selStart, selEnd) {
if (inputEl.setSelectionRange) {
inputEl.focus();
inputEl.setSelectionRange(selStart, selEnd);
} else if (inputEl.createTextRange) {
var range = inputEl.createTextRange();
range.collapse(true);
range.moveEnd('character', selEnd);
range.moveStart('character', selStart);
range.select();
}
}
if (inputEl.setSelectionRange) {
inputEl.focus();
inputEl.setSelectionRange(selStart, selEnd);
} else if (inputEl.createTextRange) {
var range = inputEl.createTextRange();
range.collapse(true);
range.moveEnd('character', selEnd);
range.moveStart('character', selStart);
range.select();
}
}
Czy dałoby się to jakoś zmodyfikować, aby pole tekstowe nie przewijało się na sam początek?
Wiem, że jest to możliwe bo np. edytor postów na tym forum to potrafi (np. po dodaniu tagu code), ale nie potrafię odnaleźć odpowiedniego fragmentu niestety...
Będę wdzięczny za pomoc.