Witam!!

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 winksmiley.jpg
Warunki do IE działają bez żadnych problemów. Lecz problem mam z warunkami do Mozilli, nie mogę sobie poradzić z poleceniami.
  1. var cnt=new Array();
  2. function Paste(co){
  3. if(document.selection){
  4.      if (cnt[co] == "URL") {
  5.    var linkUrl = prompt('Podaj adres URL do strony www.', 'http://');
  6.    if(linkUrl != null){
  7.    document.forma.tresc.focus();
  8.    document.selection.createRange().text=''+linkUrl+'';
  9.    }
  10.      }else if(document.selection.createRange().text.length>0){
  11.      document.forma.tresc.focus();
  12. document.selection.createRange().text='['+co+']'+document.selection.createRange().text+'[/'+co+']';
  13.      } else {
  14.      if (!cnt[co]) cnt[co]=0;
  15.      document.forma.tresc.focus();
  16.      document.selection.createRange().text="["+((cnt[co]%2)?"/":"")+co+"]";
  17.      cnt[co]++;
  18.      }
  19. }else if(document.forma.tresc){
  20.      if (cnt[co] == "URL") {
  21.    var linkUrl = prompt('Podaj adres URL do strony www.', 'http://');
  22.    if(linkUrl != null){
  23.    document.forma.tresc.focus();
  24.    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);
  25.    }
  26.      
  27. //Mozlilla - >
  28. }else if(document.forma.tresc.textLenght && (document.forma.tresc.selectionEnd > document.forma.tresc.selectionStart)){
  29.      document.forma.tresc.focus();
  30.      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);
  31.      } else {
  32.      if (!cnt[co]) cnt[co]=0;
  33.      document.forma.tresc.focus();
  34.      document.forma.tresc.value="["+((cnt[co]%2)?"/":"")+co+"]";
  35.      cnt[co]++;
  36.      }
  37. //...koniec Mozilla
  38.  
  39. }else{
  40.      if (!cnt[co]) cnt[co]=0;
  41.      document.forma.tresc.value+="["+((cnt[co]%2)?"/":"")+co+"]";
  42.      cnt[co]++;
  43.      }
  44. }


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.