2009-05-25 16 views
9

He visto algunos sitios web resaltar las palabras clave del motor de búsqueda que utilizó para llegar a la página. (como las palabras clave que escribió en la lista de búsqueda de Google)¿Cómo resalta un sitio web los términos de búsqueda que utilizó en el motor de búsqueda?

¿Cómo sabe qué palabras clave escribió en el motor de búsqueda? ¿Examina el encabezado HTTP de referencia o algo así? ¿Hay scripts disponibles que puedan hacer esto? Puede ser del lado del servidor o JavaScript, no estoy seguro.

Respuesta

12

Esto se puede hacer tanto desde el lado del servidor como desde el lado del cliente. Las palabras clave de búsqueda se determinan mirando el encabezado HTTP Referer (sic). En JavaScript puede mirar document.referrer.

Una vez que tenga la referencia, compruebe si se trata de una página de resultados del motor de búsqueda que conozca y luego analice los términos de búsqueda.

Por ejemplo, los resultados de búsqueda de Google tienen URL que tener este aspecto:

http://www.google.com/search?hl=en&q=programming+questions 

El parámetro de consulta q es la consulta de búsqueda, por lo que te gustaría lograr eso y no-URL-escapar de ella, resultando en:

programming questions 

Luego puede buscar los términos en su página y seleccionarlos según sea necesario. Si está haciendo esto del lado del servidor, modificaría el código HTML antes de enviarlo al cliente. Si lo haces desde el lado del cliente, manipularías el DOM.

Existen bibliotecas existentes que pueden hacer esto por usted, como this one.

+0

lo que esta respuesta se omite es que la referencia no es confiable en general. No todos los navegadores y configuraciones enviarán referidos (por razones de privacidad/seguridad básicamente). – SpliFF

+4

Sí, eso es cierto, pero como el resaltado de los términos de búsqueda solo se realiza por comodidad, no es gran cosa. Si no obtiene un referente, simplemente no tiene nada que destacar. –

+0

Gracias. Qué excelente respuesta. Especialmente la biblioteca. –

7

Al darse cuenta de esto es probablemente demasiado tarde para hacer alguna diferencia ...

Por favor, se lo ruego - averiguar cómo lograr esto y luego no lo hacen. Como usuario de la web, me resulta intensamente molesto (y molesto) cuando me encuentro con un sitio que hace esto automáticamente. La mayoría de las veces acaba resaltando cada dos palabras en la página. Si necesito ayuda para encontrar una determinada palabra dentro de una página, mi navegador tiene incorporada una función de búsqueda mucho más apropiada, que puedo utilizar o no a voluntad, en lugar de tener que volver a cargar toda la página para que funcione. cuando no lo quiero (que es la gran mayoría de las veces).

+1

Me pregunto si usted representa a la gran mayoría de los usuarios de la web que podría ser útil. –

+1

Ciertamente estoy de acuerdo con @ 1amzave. Mi navegador tiene una excelente función de búsqueda y la usaré si la necesito. Los aspectos más destacados son * muy * molestos, especialmente si después de un escaneo rápido decido leer la página en profundidad. Se ha empeorado por el hecho de que la mayoría de los sitios que hacen esto no proporcionan una manera de apagarlo. * Yo * sé cómo solucionarlo, pero soy un desarrollador web. La mayoría de las personas no tienen ni idea, lo que significa que tienen que leer la página con docenas de palabras destacadas. Y si deciden que quieren imprimir la página, o enviársela por correo electrónico a alguien en formato HTML, se puede seguir adelante, posiblemente de forma permanente. –

3

Básicamente, usted ...

  1. Examine document.referrer.
  2. Tiene una lista de dominios para GET param que contiene los términos de búsqueda.

    var searchEnginesToGetParam = { 
        'google.com' : 'q', 
        'bing.com' : 'q' 
    } 
    
  3. Extracto del parámetro GET apropiada, y que decodeURIComponent().

  4. Analice los nodos de texto donde desea resaltar los términos (consulte Replacing text with JavaScript).
  5. ¡Ya ha terminado!
Cuestiones relacionadas