Stworzyłem sobie funkcję do zamiany znaków bb na html. Lecz niestety nie wszystko działa pod różnymi przeglądarkimi, stąd zmuszony byłem napisać warunki na różne przeglądarki. Uprzedzam że dopiero zacząłem w JS i w kodzie jest pewnie sporo błędów. Tak więc proszę o odrobinę wyrozumiałości

Warunki do IE działają bez żadnych problemów. Lecz problem mam z warunkami do Mozilli, nie mogę sobie poradzić z poleceniami.
var cnt=new Array(); function Paste(co){ if(document.selection){ if (cnt[co] == "URL") { var linkUrl = prompt('Podaj adres URL do strony www.', 'http://'); if(linkUrl != null){ document.forma.tresc.focus(); document.selection.createRange().text=''+linkUrl+''; } }else if(document.selection.createRange().text.length>0){ document.forma.tresc.focus(); document.selection.createRange().text='['+co+']'+document.selection.createRange().text+'[/'+co+']'; } else { if (!cnt[co]) cnt[co]=0; document.forma.tresc.focus(); document.selection.createRange().text="["+((cnt[co]%2)?"/":"")+co+"]"; cnt[co]++; } }else if(document.forma.tresc){ if (cnt[co] == "URL") { var linkUrl = prompt('Podaj adres URL do strony www.', 'http://'); if(linkUrl != null){ document.forma.tresc.focus(); document.forma.tresc.value= document.forma.tresc.value.substring(0,document.forma.tresc.selectionStart) +''+linkUrl+''+ document.forma.tresc.value.substring(document.forma.tresc.selectionEnd, document.forma.tresc.textLength); } //Mozlilla - > }else if(document.forma.tresc.textLenght && (document.forma.tresc.selectionEnd > document.forma.tresc.selectionStart)){ document.forma.tresc.focus(); document.forma.tresc.value= document.forma.tresc.value.substring(0,document.forma.tresc.selectionStart) +"["+((cnt[co]%2)?"/":"")+co+"]"+ document.forma.tresc.value.substring(document.forma.tresc.selectionEnd, document.forma.tresc.textLength); } else { if (!cnt[co]) cnt[co]=0; document.forma.tresc.focus(); document.forma.tresc.value="["+((cnt[co]%2)?"/":"")+co+"]"; cnt[co]++; } //...koniec Mozilla }else{ if (!cnt[co]) cnt[co]=0; document.forma.tresc.value+="["+((cnt[co]%2)?"/":"")+co+"]"; cnt[co]++; } }
Problemy rozpoczynają się w momencie który wyznaczyłem w kodzie. Skrypt działa następująco.
Warunek dot. URL działa bez problemu w obu warunkach, zarówno dla IE jak i Mozilli. Dla IE wszystko jest OK. Lecz dalsza część warunków dla "Mozilli" nie działa.
- Nie działa zaznaczenie w textarea
- Klikając w przycisk otwieram najpierw znacznik [ B], a potem zamykam [ /B] lecz zamykający zamiast ustawić się po otwierającym - kasuje otwierający i wchodzi na jego miejsce. Jednym słowem nie działa zaznaczanie tekstu i w prowadzanie znaczników w wybranym miejscu w textarea.