Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Opera, pole input i selectionStart
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
czarek1986
Witam

Mam taki problem. Chce sobie pobrać pozycje zaznaczonego tekstu w polu input type="text". Robię to poprzez odczytanie w javascript tego pola po id czyli input = getElementById("jakisinput") a następnie pobieram pozycje zaznaczenia za pomocą input.selectionStart i input.selectionEnd. I tutaj występuje problem. Otóż we wszystkich przeglądarkach pozycja jest prawidłowo odczytywana, czyli jeśli zaznaczę myszka kawałek tekstu to wszędzie dostaje prawidłową pozycje początkową i końcową zaznaczenia. W Operze natomiast pozycja początkowa i końcowa są takie same niezależnie od tego ile tekstu zaznaczę. Problem nie występuje przy zaznaczeniu normalnego tekstu na stronie ani w polach textarea.
Czy wie ktoś jak można pobrać poprawnie pozycje zaznaczenia w Operze omijając opisany błąd?
reaktor
W IE selectionStart -End wg mojej wiedzy rowniez nie zadziala,
i trzeba tam operowac metoda createRange.

range = document.selection.createRange(),
txtlen = range.text.length;
range.text = "sratytaty";
... i rozne takie smile.gif

Nie wiem jak to jest jest w Operze, ale sprobuj.
czarek1986
No niestety w Operze nie da się nawet za bardzo użyć takiej metody jak document.selection.createRange(). Czy ktoś ma jakiś pomysł jak można w takim razie odczytać tą wartość selectionStart poprawnie?

Czy jeszcze nikt nie trafił na taki problem jak ja, czy może nie ma prostego rozwiązania na ten błąd, ponieważ wina leży po stronie Opery?

Edit: Jednak wszystko działa poprawnie tylko ja coś sknociłem. Teraz musze tylko dojść co smile.gif. Temat do zamknięcia

jednak temat jeszcze aktualny. Wiem już żę Opera nie pokazuje mi prawidłowych wartości selectionStart (tzn. mimo zaznaczeniu jakiegoś tekstu wartości selectionStart i selectionEnd są ustawione tak jakby nic nie zostało zaznaczone) ponieważ funkcja która pokazuje te wartości za pomocą alert, jest wywoływana za pomocą zdarzenia onclick przypisanego do elementu <a>, Gdy przypisuje zdarzenie onclick do elementu <input type="button"> wtedy Opera pokazuje normalnie wartości selectionStart i selectionEnd zaznaczonego tekstu. Podejrzewam że dzieje się tak ponieważ po naciśnięciu linku w Operze najpierw "zdejmowane" jest zaznaczenie z dowolnego tekstu na stronie, a dopiero następnie wykonywana jest funkcja wywoływana zdarzniem onclick.
Może tym razem ktoś będzie umiał mi pomóc i będzie miał jakiś pomysł jak nie pozwolić Operze gubić tego zaznaczenia stosując nadal element <a>
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.