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?