La mia soluzione personale con qualche opzione avanzata di ricerca
L'area su cui eseguire la ricerca è quella contraddistinta dall'id="area_di_ricerca" (configurabile)

La ricerca esclude naturalmente i tag html


codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    
    <title>xhtml 1.0</title>
    <style type="text/css">
    /* <![CDATA[ */
    
    body {
        font: 11px Verdana, Arial;
    }
    
    fieldset {
        border: 1px #ccd solid;
        padding : 10px;
    }
    
    .foundword {
        font-style: italic;
        background: #d5d6f3;
    }
    
    

    /* ]]> */
    </style>

    <script type="text/javascript">
    /* <![CDATA[ */
    
    
    var word = '';
    var area = '';
    
    function $(id) {
        return document.getElementById(id);
    }
    
 
    function trim(value) {
       return value.replace(/^\s*(.+?)\s*$/, function($0, $1) {
            return $1;
       });
    }


    function findKey(word) {
    
        // MultiSearch
        if ($('multiSearch').checked) 
            arearicerca = trim($('area_di_ricerca').innerHTML);
        else 
            arearicerca = trim(area)
            
        /*  ******************************************************  */ 
        
        // upperLower
        if ($('upperLower').checked) 
            modifiers = 'gm'
        else 
            modifiers = 'gim'
        /*  ******************************************************  */ 
        

        //exactWord
        if ($('exactWord').checked) 
            word = '\\b' + word + '\\b';
        /*  ******************************************************  */ 
            

        text_re = new RegExp(word , modifiers)
    
       

        if (arearicerca.match(text_re)) {
           
            var nmatch = 0;
            arearicerca = arearicerca.replace(text_re, function($0) { 
                ++nmatch;
                return "<span class='foundword'>"+ $0 +"</span>";
            });
            
            
            $('area_di_ricerca').innerHTML = arearicerca;
            alert('Ho trovato ' + nmatch + ' risultato/i');
        }

        else {
            alert('parola non trovata');
        }
           
    }
    
    
    function doFind(value) {
    
        word = trim(value);
       
        if (word.length < 3) {
            alert('inserire una keyword di almeno 3 caratteri'); 
            return;
        }
      
        // La ricerca deve escludere i tag Html
        word = word.replace(/</, '&lt;').replace(/>/, '&gt;')
        findKey(word);

    }
    
    
    window.onload = function() {
        area = trim($('area_di_ricerca').innerHTML);
    }

    /* ]]> */
    </script>


<body>
   
        
    <div id="area_di_ricerca">
    
        


            <h3>Tratto da : http://it.wikipedia.org/wiki/Interstella_5555</h3>
        </p>
        
        


        Interstella 5555, titolo completo Interstella 5555: the 5tory of the 5ecret 5tar 5ystem, 
        è un film d'animazione prodotto in Giappone nel 2003 dalla Toei Animation e basato interamente 
        sull'album Discovery della band elettronica Daft Punk. Co-regista del film nonché ideatore del 
        concept visivo di personaggi e ambientazioni è il celeberrimo Leiji Matsumoto, autore fra l'altro 
        di serie animate quali Capitan Harlock e Galaxy Express 999.
        </p>    
        
        


        Il film è totalmente senza dialogo, le uniche parole pronunciate sono quelle delle canzoni che, si 
        può dire, non sono solo la colonna sonora, ma parte integrante del film stesso. Ognuna delle 13 canzoni 
        dell'album è collegata a una parte del film.
        </p>

        


        Su un pianeta situato in una galassia sconosciuta, abitato da esseri identici agli umani ma dalla pelle blu, 
        si esibiscono in concerto quattro musicisti. Mentre tutta una metropoli segue il concerto, un'astronave 
        si avvicina al pianeta e ne discende un commando di personaggi mascherati i quali tramite un gas soporifero 
        stordiscono i quattro, nonché l'intero pubblico presente al concerto e le forze di sicurezza. I quattro musicisti, 
        assieme ai loro strumenti, vengono rapiti e portati al cospetto di un misterioso individuo...
        </p>
    </div>
    
    
    


    <form action="#">
    <fieldset>
        Keyword <input type="text" id="text" />

        <input type="checkbox" id="multiSearch" /><label for="multiSearch">Ricerca Multipla</label>

        <input type="checkbox" id="upperLower" /><label for="upperLower">Maiuscole/Minuscole</label>

        <input type="checkbox" id="exactWord" checked="checked" /><label for="exactWord">Parola esatta</label>


        <input type="button" value="Cerca" onclick="doFind(document.getElementById('text').value)" />        
    </fieldset>
    </form>
</body>
</html>
-Fab-