• User

    Javascript: replace e innerhtml

    ciauz a tutti, ho un grosso problema...dopo diverse molte di documentazione ero arrivato a creare uno script funzionante per effettuare il replace di termini contenuti nel body, aggiungendo ad essi anche una formattazione html.
    il problema è nato dal fatto che il testo per il replace poteva trovarsi anche in una tabella, un paragrafo ecc...
    ho cercato in internet un "aiuto" e ho trovato questo fantastico script
    http://snippets.dzone.com/posts/show/4490#related ...eccolo

    
    var words={
    'Bill':'William','Miss':'Mrs'
    }
    var regs=[];
    for(arg in words){regs[regs.length]=new RegExp(arg,'g')}
    window.onload=function replaceText(){
    var tags=document.getElementsByTagName('body')[0].getElementsByTagName('*');
    var i=0,t;
     while(t=tags[i++]){
      if(t.childNodes[0]){
       var j=0, c;
       while(c=t.childNodes[j++]){
        if(c.nodeType==3){
         var k=0;
         for(arg in words){
          c.nodeValue=c.nodeValue.replace(regs[k],words[arg]);
          k++;
         }
        }
       }
      }
     }
    }
    
    

    l'array delle parole per il replace è questo:

    
    var words={
    'Bill':'William','Miss':'Mrs'
    }
    
    

    se io volessi fare una cosa di questo tipo

    
    var words={
    'Bill':'<strong>William</strong>','Miss':'<em>Mrs</em>'
    }
    
    

    lo script farebbe correttamente il replace...ma mi mostrerebbe a schermo il codice html...
    bisogna dunque utilizzare innerHTML, il fatto è che nn riesco in nessun modo ad adattare lo script per farlo funzionare...
    spero davvero che qualcuno mi possa aiutare...
    ciauz e grazie a tutti