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:
I risultati vengono contati correttamente però le parole non vengono evidenziate nel testo. Sapete dirmi come posso risolvere?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"; }

Rispondi quotando