Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kolorowanie składni na bieżąco
Capellini
post 22.04.2009, 20:58:30
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Nie wiem, czy umieściłem ten temat w dobrym dziale bo nie wiem, jakie technologie tu będzie najlepiej wykorzystać.

Chodzi mi o kolorowanie składni, ale przed kliknięciem przycisku "Wyślij". Po prostu w textarea. Jak najlepiej się za to zabrać? W zwykłym textarea nie ma raczej możliwości kolorowania tekstu więc to odpada. Dwie możliwości, jakie mi przyszły na razie na myśl to zrobienie "własnego textarea" np. w JavaScript, tylko że tutaj będzie potrzebne bardzo dużo pracy (będzie trzeba zaprogramowywać naciśnięcie każdego przyciskum, np. backspace) i wydaje mi się, że to trochę głupie rozwiązanie. Druga możliwość, która mi przyszła na myśl, to zrobienie tego jako aplet w Javie i wstawienie na stronę. Co o tym myślicie?


--------------------
WIELKIE DZIĘKI ZA POMOC!
Go to the top of the page
+Quote Post
Crozin
post 22.04.2009, 21:08:08
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Zobacz sobie na jakiej zasadzie działają okna edytorów WYSIWYG w JS. IMO na takiej zasadzie powinieneś to właśnie zrobić. Do tego mechanizm kolorowania składni - również w JS by działało to płynnie.
Go to the top of the page
+Quote Post
marcio
post 22.04.2009, 22:53:25
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Lub zrobic Div'a pod Textarea gdzie ktos pisal by kod do tego napisac funkcje JS ktora bedzie na bierzaco przesylala kod z tego Textarea to div'a w ktorym potem wszystko przeparsujesz i wyswietlisz cos jak podglad postu z gotowym bbcode.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Capellini
post 27.05.2009, 14:19:11
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Sorry, że odpowiadam tak późno...

Cytat
Zobacz sobie na jakiej zasadzie działają okna edytorów WYSIWYG w JS. IMO na takiej zasadzie powinieneś to właśnie zrobić. Do tego mechanizm kolorowania składni - również w JS by działało to płynnie.


Poszukałem takich edytorów, ale trochę trudno jest przestudiować ich działanie dry.gif

Cytat
Lub zrobic Div'a pod Textarea gdzie ktos pisal by kod do tego napisac funkcje JS ktora bedzie na bierzaco przesylala kod z tego Textarea to div'a w ktorym potem wszystko przeparsujesz i wyswietlisz cos jak podglad postu z gotowym bbcode.


Nie wiem, czy dobrze zrozumiałem Twój pomysł, ale jeżeli tak, to chodzi mi o co innego - chciałbym, żeby kolorowanie składni nastąpiło natychmiast, a nie po naciśnięciu przycisku Podgląd.

Jedyny pomysł, jaki przychodzi mi do głowy, to po prostu zdarzenie onKeyPress i odpowiednio reagować na na przykład naciśnięcie przycisku A.

W jaki sposób działa wstawienie emotikonek na tym forum (chodzi o to, że jak kliknąłem na emotikonkę, to pojawiła ona się natychmiast w miejscu, gdzie piszę, jako obrazek, a nie na przykład znak dwukropka i zakończenia nawiasu)?


--------------------
WIELKIE DZIĘKI ZA POMOC!
Go to the top of the page
+Quote Post
Crozin
post 27.05.2009, 14:38:21
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


marciowi chodziło o to by po wpisaniu czegokolwiek w textarea pod spodem dynamicznie wyświetlało się to jako zwykły tekst.

Co do zasady działania WYSIWYG: http://www.google.pl/search?hl=pl&q=js...+Google&lr= przeszukaj (ew. pod podobnymi frazami)
Go to the top of the page
+Quote Post
Capellini
post 27.05.2009, 17:02:41
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Poszukałem trochę i jest wiele artykułów na temat jak napisać swój edytor WYSWIG, ale ja znalazłem chyba prostszy sposób. Znalazłem, że jeżeli wpiszemy w pasku adresu przeglądarki poniższy kod, to można edytować stronę.

Kod
javascript:document.body.contentEditable = 'true'; document.designMode='on'; void 0


Poszukałem więc info na temat contentEditable i stwierdziłem, że najprościej będzie w taki sposób:

1. Tworzymy diva o nazwie "RichEdit".
2. W body onload dajemy funkcję w której ustawiamy contentEditable naszego diva na true, np. w ten sposób:
Kod
var zm = document.getElementById("RichEdit");
zm.contentEditable = "true";

3. Naszemu divovi ustawiamy onKeyPress na funkcję kolorującą tekst znajdujący się w divie.


--------------------
WIELKIE DZIĘKI ZA POMOC!
Go to the top of the page
+Quote Post
erix
post 27.05.2009, 17:08:42
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Do tego mechanizm kolorowania składni - również w JS by działało to płynnie.

O ile pamiętam, to taka biblioteka nazywała się Chili (w jQuery).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Capellini
post 28.05.2009, 17:57:54
Post #8





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Pojawił się mały problem. Kiedy koloruje tekst w divie, to go zmieniam, a kiedy go zmieniam to kursor ustawia się zawsze na początku, a koloruję tekst za każdym razem, kiedy zostanie dopisana jakaś litera. Czy ktoś wie jak w JavaScript ustawić kursor w jakimś miejscu albo jak inaczej rozwiązać ten problem?


--------------------
WIELKIE DZIĘKI ZA POMOC!
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: 31.07.2025 - 10:44