Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/08/2008, 10:14
TattyenInternet
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Como implementar los botones Anterior y Siguiente

Te comento un poco. Tengo implementada una función que resalta todas las coincidencias de la palabra a la vez ( igual que el botón 'Resaltar todo' de la barra de búsqueda de Firefox).
Mi idea es usar esa función para de algún modo poder moverme de la palabra anterior a la siguiente.

Te pego la función:

function webfiltering_resaltar(bodyText,searchTerm,highligh tStartTag,highlightEndTag){//bodyText es la pagina original
//como no se pasar el color como argumento, lo inicializo en la funcion
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:black; background-color:red;'>";
highlightEndTag = "</font>";
}
var newText = ""; //vble que almacenara el nuevo body con las palabras resaltadas
var i = -1;
var textoMinus = searchTerm.toLowerCase();
var bodyMinus = bodyText.toLowerCase();
while (bodyText.length > 0) { //recorremos toda la pagina buscando coincidencias
i = bodyMinus.indexOf(textoMinus, i+1);//almacenamos en i si hay coincidencia o no
if (i < 0) { //no hay coincidencia porque el índice devuelto es menor que 0
newText += bodyText; //añadimos el texto original al nuevo texto
bodyText = "";
} else { //si ha habido coincidencia, en este caso tendremos que resaltarla
webfiltering_numPalabrasResaltadas++;
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) { //recorremos todo el texto
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
bodyMinus = bodyText.toLowerCase();
i = -1;//volvemos a poner la i a -1 para continuar buscando coincidencias
}
}
}
return newText;
}