Ver Mensaje Individual
  #13 (permalink)  
Antiguo 19/07/2010, 14:08
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: buscar texto en una pagina web

Hola

Un código algo mas optimizado. Es case insensitive. Ahora se deberán introducir 3 caracteres antes del highlight
Código Javascript:
Ver original
  1. <?php
  2. $url = file_get_contents('http://www.monografias.com/trabajos5/asp/asp.shtml', true);
  3. $codigo =  $url;
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  6. <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
  7. <head>
  8. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  9. <script type="text/javascript">
  10. var cadena = '';
  11. var largo_cadena = 0;
  12.  
  13. window.onload = function() {cadena = document.getElementById('texto').innerHTML; largo_cadena = cadena.length;};
  14.  
  15. function Resaltar(cadABuskar) {
  16. var caracteresInput = cadABuskar.length;
  17.  
  18.     if (caracteresInput == 2) {
  19.         document.getElementById('texto').innerHTML = cadena;
  20.         document.getElementById('terminos').style.border = '';
  21.  
  22.     } else if (caracteresInput >= 3) {
  23.  
  24. var rgEx = new RegExp(cadABuskar, 'g\i');
  25.  
  26.             if (cadena.substr(0,parseInt(largo_cadena)).match(rgEx)) {
  27.                 var marca = cadena.substr(0,parseInt(largo_cadena)).replace(rgEx, function(coincidencia){return '<span style=\"background-color:#9ACD32;color:#FFF;\">' + coincidencia + '</span>';});
  28.                     document.getElementById('texto').innerHTML =  marca;
  29.             document.getElementById('terminos').style.border = 'solid #9ACD32 1px';
  30.             } else {
  31.             document.getElementById('texto').innerHTML = cadena;
  32.             document.getElementById('terminos').style.border = 'solid #FF0000 1px';
  33.         }
  34.     }
  35. }
  36. </script>
  37. </head>
  38. <body>
  39. <form method="post" action="" name="" autocomplete="off">
  40. Buscar Terminos: <input type="text" value="" id="terminos" onkeyup="Resaltar(this.value);" />
  41. </form>
  42. <div id="texto"><?php echo $codigo;?></div>
  43. </body>
  44. </html>

Parte de este código es gracias a @zerokilled, gracias por ensañarme a usar funciones en el replace

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />