• User Newbie

    Formattare testo selezionato in textarea

    ciao a tutti,
    vorrei provare a realizzare una textarea con testo formattabile senza ricorrere a un wysiwyn editor.
    ho trovato questo script che fa al caso mio (da mettere tutto all'interno di <body></body> ) :

    <SCRIPT language=JavaScript> 
    
    
     
    
    [LEFT]function AddText(NewCode) { 
    [LEFT]document.form1.mess.value+=NewCode 
    } [/LEFT]
     
    [LEFT]function email() { [/LEFT]
     
    [LEFT]       txt2=prompt("Testo da visualizzare col link. Lasciare vuoto se si vuole visualizzare solo l'url.",""); 
           if (txt2!=null) { 
               txt=prompt("URL per il link.","mailto:");       
               if (txt!=null) { 
                   if (txt2=="") { 
                       AddTxt="<a href=>"+txt+"</a>"; 
                       AddText(AddTxt); 
                   } else { 
                       AddTxt="<a href=\""+txt+"\">"+txt2+"</a>"; 
                       AddText(AddTxt); 
                   }          
               } 
           } 
       } [/LEFT]
     
    [LEFT]function showsize(size) { [/LEFT]
     
    [LEFT]       txt=prompt("Text to be size "+size,"Text"); 
           if (txt!=null) {              
               AddTxt="<size="+size+">"+txt+"</size="+size+">"; 
               AddText(AddTxt); 
           }         
       } [/LEFT]
     
    [LEFT]function bold() { [/LEFT]
     
    [LEFT]       txt=prompt("Testo in Grassetto.","Text");      
           if (txt!=null) {            
               AddTxt="<b>"+txt+"</b>"; 
               AddText(AddTxt); 
           }        
       } [/LEFT]
     
    [LEFT]function italicize() { [/LEFT]
     
    [LEFT]       txt=prompt("Testo in corsivo","Text");      
           if (txt!=null) {            
               AddTxt="<i>"+txt+"</i>"; 
               AddText(AddTxt); 
           }             
       } [/LEFT]
     
    [LEFT]function center() { [/LEFT]
     
    [LEFT]       txt=prompt("Testo da centrare","Text");      
           if (txt!=null) {           
               AddTxt="<center>"+txt+"</center>"; 
               AddText(AddTxt); 
           }            
       } [/LEFT]
     
    [LEFT]function br() { [/LEFT]
     
    [LEFT]           AddTxt="<br>"; 
               AddText(AddTxt); [/LEFT]
     
    [LEFT]} [/LEFT]
     
    [LEFT]function hyperlink() { [/LEFT]
     
    [LEFT]       txt2=prompt("Testo da visualizzare col link. Lasciare vuoto se si vuole visualizzare solo l'url.",""); 
           if (txt2!=null) { 
               txt=prompt("URL per il link link.","http://");       
               if (txt!=null) { 
                   if (txt2=="") { 
                       AddTxt="<a href=>"+txt+"</a>"; 
                       AddText(AddTxt); 
                   } else { 
                       AddTxt="<a href=\""+txt+"\">"+txt2+"</a>"; 
                       AddText(AddTxt); 
                   }          
               } 
           } 
       } [/LEFT]
     
    [LEFT]function image() { [/LEFT]
     
    [LEFT]       txt=prompt("URL dell'immagine","http://");     
           if(txt!=null) {             
               AddTxt="<img src=\""+txt+"\">"; 
               AddText(AddTxt); 
           }     
       } [/LEFT]
     
    [LEFT]function underline() { [/LEFT]
     
    [LEFT]       txt=prompt("Testo da sottolineare.","Text");      
           if (txt!=null) {            
               AddTxt="<u>"+txt+"</u>"; 
               AddText(AddTxt);             
       } 
    } [/LEFT]
     
    [LEFT] </SCRIPT> [/LEFT]
     
     
     
    [LEFT]<form name="form1" method="post" action="mail.php"> 
       <br> 
       <b><font size="2" face="Arial, Helvetica, sans-serif">Messaggio<br><br> 
       </font><font face="Verdana, Arial, Helvetica" 
               size=2><a href="java-script:bold();"><img height=22 
               alt=Grassetto src="images/icon_editor_bold.gif" width=23 
               border=0></a><a href="java-script:italicize();"><img height=22 
               alt=Corsivo src="images/icon_editor_italicize.gif" width=23 
               border=0></a><a href="java-script:underline();"><img height=22 
               alt=Sottolineato src="images/icon_editor_underline.gif" 
               width=23 border=0></a> <a href="java-script:center();"><img height=22 
               alt=Centrato src="images/icon_editor_center.gif" width=23 
               border=0></a> <a href="java-script:br();"><img height=22 alt="A capo" 
               src="images/icon_editor_br.gif" width=23 border=0></a> <a 
               href="java-script:hyperlink();"><img height=22 
               alt="Inserisci collegamento" 
               src="images/icon_editor_url.gif" width=23 border=0></a><a 
               href="java-script:email();"><img height=22 alt="Inserisci e-mail" 
               src="images/icon_editor_email.gif" width=23 border=0></a><a 
               href="java-script:image();"><img height=22 alt="Inserisci immagine" 
               src="images/icon_editor_image.gif" width=23 border=0></a> </font><font size="2" face="Arial, Helvetica, sans-serif"> 
       <br> 
       </font></b> 
       <textarea name="mess" cols="80" rows="14" wrap="PHYSICAL"></textarea> 
       <p> 
         <input type="submit" name="Submit" value="Invia"> 
       </p> 
    
     </form>[/LEFT]
    
    

    ...il problema è che in questo modo non posso prima scrivere il testo e poi, ad esempio, selezionare una singola parola, premere il tasto B e ottenerla in grassetto (..come invece è possibile fare nella composizione di un messaggio all'interno di questo forum).

    ...quindi, in sostanza, il mio problema è riuscire a far effettuare la formattazione solo sulle porzioni di testo selezionate.

    Essendo completamente a digiuno di javascript, c'è qualcuno che saprebbe indicarmi come implementare questo script per ottenere questo tipo di "funzionalità" ??

    grazie mille...
    [/LEFT]