Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Opera, pole input i selectionStart
czarek1986
post 30.06.2010, 23:28:22
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 15.09.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
reaktor
post 2.07.2010, 16:22:41
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
czarek1986
post 13.07.2010, 18:28:15
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 15.09.2008

Ostrzeżenie: (0%)
-----


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>

Ten post edytował czarek1986 13.07.2010, 10:29:56
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 13:13