Ciao a tutti, ho di nuovo bisogno del vostro aiuto. Sto cercando di realizzare una funzione che esegua la ricerca di un testo inserito dall'utente in un testo dato e che successivamente colori queste parole inserendolo in una nuova classe.

Ho scritto questo:
codice:
function sub_highlight()
 {
  var query = document.getElementById("panel_box_content_find_text").value;
  var reg = new RegExp(query, 'gi');
  var targetHtml = show_frame("editArea").body.innerHTML;
  var text;

  document.getElementById("panel_box_content_find_msg").innerHTML="";

  if((targetHtml.length>0) && (query.length>0) && (reg.test(targetHtml)))
   {
    var matches = targetHtml.match(reg);
    var tc = (matches.length == 1) ? 'corrispondenza' : 'corrispondenze';
    var tt = (matches.length == 1) ? 'trovata' : 'trovate';

    document.getElementById("panel_box_content_find_msg").innerHTML="Ricerca Completata: "+matches.length+" "+tc+" "+tt;

	text = show_frame("editArea").body.innerHTML
	text = text.replace(reg, '<span class="highlight">'+matches[0]+'</span>');
    var ifrm = document.getElementById('editArea');
    ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
    ifrm.document.open();
    ifrm.document.write(text);
    ifrm.document.close();
   } else {
    document.getElementById("panel_box_content_find_msg").innerHTML="Ricerca Completata: Non sono stati trovati risultati";
   }
I risultati vengono contati correttamente però le parole non vengono evidenziate nel testo. Sapete dirmi come posso risolvere?