[JS] Wstawianie tagów HTML do textarea

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
Ahelor
Posty: 14
Rejestracja: ndz lip 10, 2005 10:53 am
Lokalizacja: Jaworzno
Kontakt:

[JS] Wstawianie tagów HTML do textarea

Post autor: Ahelor »

Problem:
Robię formularz służący do dodawania treści na stronę (część większego CMS'a). Największe pole to textarea które ma odpowiadać za treść. Admin może w nim używać HTML'a. Chciałem usprawnić to i dodałem przyciski z prostymi tagami jak B, U, EM, STRONG itp. Chcę aby po kliknięciu w odpowiedni buttonik dany tag wklejał się w textarea w miejscu gdzie znajdował się kursor.

Póki co:
Narazie zrobiłem spokojnie ze klikam i wybrany tag wkleja mi się na końcu treści pola textarea.

Kod: Zaznacz cały

document.getElementById('text').value += str;
Ale jak już wspominałem potrzebuję aby to wklejało w miejsce gdzie przed kliknięciem znajdował się kursor. Na tym forum gdy dodaje się posta jest podobny formularz. On pod IE działa jak trzeba ale pod FireFoxem nie. Tzn działa tylko gdy zaznaczyć jakiś kawałek tekstu.

Z góry dziękuję za jakiś link lub jak najprostrze rozwiązanie.[/u]
Ahelor
Posty: 14
Rejestracja: ndz lip 10, 2005 10:53 am
Lokalizacja: Jaworzno
Kontakt:

Re: [JS] Wstawianie tagów HTML do textarea

Post autor: Ahelor »

Widzę że nikt nie kwapi się do pomocy.
To może wie ktoś jak sprawdzić wogóle w jakim miejscu tekstu znajduje się kursor, lub za którym znakiem. Gdyby taka liczba była w jakiś sposób dostępna to by napewno pomogło.

Nadal czekam na pomysły...
phpIker
Nowy
Nowy
Posty: 182
Rejestracja: śr lis 02, 2005 9:28 pm
Lokalizacja: Kraków

Re: [JS] Wstawianie tagów HTML do textarea

Post autor: phpIker »

Kod: Zaznacz cały

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
http://www.faqts.com/knowledge_base/vie ... 52/fid/130
Ahelor
Posty: 14
Rejestracja: ndz lip 10, 2005 10:53 am
Lokalizacja: Jaworzno
Kontakt:

Re: [JS] Wstawianie tagów HTML do textarea

Post autor: Ahelor »

OK, wielkie dzięki. Nareszcie jakaś pomoc. Udało się zrobić jak trzeba.
Teraz tylko problem z tym że to działa na IE tylko. Na FF udało mi się zrobić coś podobnego, pozostał jednak ostatni problem. Na FF po kliknięcu jakiegoś tagu zostaje on wklejony tam gdzie kursor. Problem tylko z tym że na końcu trzeba wywoływać focus(); na danym polu. Jak wiadomo funkcja ta przenosi kursor do danego pola ale na jego koniec.

Wskazany przez Ciebie phplker skrypt pozostawia kursor tam gdzie był ale jak już wspominałem - w IE.
Da się jakoś ustawić kursor w wybrane miejsce textarea na FF (posiadając liczbę odpowiadającą ilość znaków przed kursorem i za nim)?
ODPOWIEDZ