Hola
Te he optimizado el js, así que usa este. También te he montado un caso para que veas a lo que me refiero. Guarda el código con extension .php y escribe en el textfield una "
s"
Código Javascript
:
Ver original<?php
$url = file_get_contents('http://www.monografias.com/trabajos5/asp/asp.shtml', true);
$codigo = $url;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
<head>
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
<script type="text/javascript">
var vuelta = 0;
var cadena = '';
var len = 0;
function Resaltar(c,ev) {
var caracteresInput = c.length;
var largo_cadena = len;
var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
if (keyCode == 8) vuelta--;
if (vuelta < 1) {
//cadena += document.getElementById('texto').firstChild.nodeValue;
cadena = document.getElementById('texto').innerHTML;
var largo2_cadena = cadena.length
if (largo2_cadena >= largo_cadena) {len = largo_cadena;}
if (largo_cadena == 0) {len = largo2_cadena;}
}
if (caracteresInput == 0) {
document.getElementById('texto').innerHTML = cadena;
document.getElementById('terminos').style.border = '';
} else {
var rg = new RegExp(c,"g");
if (rg.exec(cadena.substr(0,parseInt(len))) != null) {
var marca = cadena.substr(0,parseInt(len)).replace(rg, '<span style=\"background-color:#9ACD32;color:#FFFFFF;\">' + c + '</span>');
document.getElementById('texto').innerHTML = marca;
document.getElementById('terminos').style.border = 'solid #9ACD32 1px';
} else {
document.getElementById('texto').innerHTML = cadena;
document.getElementById('terminos').style.border = 'solid #FF0000 1px';
}
vuelta++;
}
}
</script>
</head>
<body>
<form method="post" action="" name="" autocomplete="off">
Buscar Terminos: <input type="text" value="" id="terminos" onkeyup="Resaltar(this.value,event);" />
<div id="texto"><?php echo $codigo;?></div>
</form>
</body>
</html>
Suerte