L'utilizzo di IFRAME con modalità DesignMode ad On è ormai il sistema più diffuso nel web per permettere agli utenti di editare e formattare testo.
Vedi un esempio concreto e molto efficace su http://pro.html.it/esempio/357/

Ma è un sistema graficamente limitato in quanto, sia con MSIE, sia con Mozilla, formatta il testo generando semplici tag HTML, del tipo:
<FONT FACE="Arial" SIZE="2">testo</FONT>

Qualora si volesse formattare il testo con CSS in linea si potrebbero creare funzioni più o meno complesse per generare tag come:
<DIV STYLE="font: 12pt 'Arial'; background: #FFAA11">testo</DIV>

La cosa più semplice sarebbe però assegnare all'IFRAME delle classi (con fogli CSS collegati o incorporati), generando tag che formattino il testo selezionato con la classe scelta.
Supponiamo di avere due classi CSS, titolo e corpo, il cui valore è prelevato da un semplice input di tipo select:
<SELECT NAME="classe">
<OPTION VALUE="titolo">titolo</OPTION>
<OPTION VALUE="corpo">corpo</OPTION>
</SELECT>


Una semplice funzione di formattazione potrebbe essere:

<SCRIPT Language="Javascript">
function class_format(a) {

var a = selectedtext;
var classe = document.form.classe.value;

open_tag = "<DIV CLASS=\"" + classe + "\">";
close_tag = "</DIV>";

formatted_text = open_tag + a + close_tag;
return formatted_text;
}
</SCRIPT>


La domanda del thread è questa:
come eseguire la funzione sul testo selezionato, nello script è indicato come variabile a?