[I]Enigma risolto da me, a chi servisse ecco il codice.

codice:
function initialise_extraction () {

var body=document.getElementsByTagName('body')[0];
var buttons = '<button onclick="Search();">Search</button>';
body.innerHTML=buttons+body.innerHTML;

}

function Search(){
    var body=document.getElementsByTagName('body')[0];
    search_item (body);
}


function showFocus(elem) {
      document.getElementById('focus').innerHTML = "focus "+elem.tabIndex
    }

function search_item (node) {

var cible="Master";
    if (node.nodeType == 3) {
    
        var parent_node =node.parentNode;
        var content_node = node.nodeValue;
        var pos_node = content_node.indexOf(cible);
    //alert(pos_node);
        while (pos_node >=0) { 

            
            
            var left= content_node.substr(0,pos_node);
            var right= content_node.substr(pos_node+cible.length);
            var span= document.createElement('span');
            
            var elt_a= document.createElement('a');
            
            var att = document.createAttribute("tabindex");
            att.value = '"1"';
            elt_a.setAttributeNode(att);
            var att2 = document.createAttribute("onfocus");
            att2.value = 'showFocus(this)';
            elt_a.setAttributeNode(att2);
            
            var att3 = document.createAttribute("onblur");
            att3.value = 'showBlur(this)';
            elt_a.setAttributeNode(att3);
        
                
            var start= document.createTextNode(left);
            //var end= document.createTextNode(right);
            var word=document.createTextNode(cible);
            
            
            span.appendChild(elt_a);
            elt_a.appendChild(word);

            parent_node.insertBefore(start,node);
            parent_node.insertBefore(span,node);
            
            content_node= right;
            pos_node = content_node.indexOf(cible);
            
     
             
             
        }
    
        var end = document.createTextNode(content_node);
        parent_node.insertBefore(end,node);
        node.remove();
    
    } else {
    
        var children = node.childNodes;
        var enfants = new Array();
        for (var i = 0; i<children.length; i++) {
        
            enfants[i] = children[i];
        }
        for (var i = 0; i < enfants.length; i++) {
        
            search_item(enfants);
        }    
    }
}

function showFocus(elem) {
    var color = document.createAttribute('style');
    color.value = "background-color : #CDDE47";
    elem.setAttributeNode(color);
    }
    
function showBlur(elem) {
    elem.style.backgroundColor = 'white';
    }