- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Formattare testo selezionato in textarea
-
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]