Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Wstawianie znaków
Forum PHP.pl > Forum > Przedszkole
rafaelpl
Mam takowy skrypt wstawiający znaki do formularza:

Kod
function wstaw(myField, myValueStart, myValueEnd)
   {
     if (document.selection)
     {
       myField.focus();
       sel = document.selection.createRange();
       sel.text = myValueStart+sel.text+myValueEnd;
     }
     else if (myField.selectionStart || myField.selectionStart == 0)
     {
       var startPos = myField.selectionStart;
       var endPos = myField.selectionEnd;
       myField.value = myField.value.substring(0, startPos)+ myValueStart+myField.value.substring(startPos,endPos)+myValueEnd+myField.value.substring(endPos, myField.value.length);
     }
     else
     {
       myField.value += myValue;
     }
   }


Jednak za każdym razem, gdy wstawiam znak do pola, tekst przewija się do samej góry. Jeśli zawiera on kilkaset wersów, to ciągłe przewijanie we właściwe miejsce jest naprawdę męczące. Co mogę zrobić, aby wyeliminować ten problem?

Z góry dzięki za odpowiedź!
EarthCitizen
Wstaw na końcu funkcji:
Kod
myField.scrollTop = myField.scrollHeight;
rafaelpl
Teraz przenosi mnie na koniec tekstu smile.gif
A co jeśli nagle ktoś wstawi coś w środku? Również przenosi go na koniec, więc to rozwiązanie nie jest optymalne ;D
EarthCitizen
Aaaa przepraszam, źle Cię zrozumiałem... a usuń
Kod
myField.focus();

Bo wklejasz używając myszki, zgadza się? to ten focus tam raczej nie jest potrzebny...
rafaelpl
Cytat(EarthCitizen @ 21.01.2009, 15:59:01 ) *
Bo wklejasz używając myszki, zgadza się?


Kod wkleja się po naciśnięciu na odpowiedni obrazek (ze znacznikiem danego tagu BBCode).
Usunięcie owej linijki tekstu nie pomaga, znowu przenosi na początek tekstu...
EarthCitizen
Idealne rozwiązanie nie przychodzi mi teraz do głowy, ale może zrób tak:

Kod
// na początku funkcji
var fieldTop = myField.scrollTop;

// a na końcu
myField.scrollTop = fieldTop; // możesz ewentualnie dodać + 1
rafaelpl
Działa, więc jest dobrze smile.gif Jednak jeśli przyjdzie Ci do głowy to idealne rozwiązanie, daj znać ;D
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.