2009-05-25 13 views
9

Ho visto alcuni siti Web evidenziare le parole chiave del motore di ricerca che hai utilizzato, per raggiungere la pagina. (come le parole chiave che hai digitato nella lista di ricerca di Google)In che modo un sito Web evidenzia i termini di ricerca utilizzati nel motore di ricerca?

Come fa a sapere quali parole chiave hai digitato nel motore di ricerca? Esamina l'intestazione HTTP del referrer o qualcosa del genere? Qualche script disponibile che può fare questo? Potrebbe essere lato server o JavaScript, non ne sono sicuro.

risposta

12

Questo può essere eseguito sia lato server o lato client. Le parole chiave di ricerca sono determinate guardando l'intestazione HTTP Referer (sic). In JavaScript puoi guardare document.referrer.

Una volta ottenuto il referrer, si controlla se è una pagina dei risultati dei motori di ricerca che si conosce e quindi si analizzano i termini di ricerca.

Ad esempio, i risultati di ricerca di Google hanno URL che assomigliano a questo:

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

Il parametro di query q è la query di ricerca, in modo che ci si vuole tirare che fuori e non-URL-sfuggire, risultante in:

programming questions 

Quindi è possibile cercare i termini sulla pagina ed evidenziarli se necessario. Se stai facendo questo lato server, modifichi l'HTML prima di inviarlo al client. Se lo stai facendo lato client, manipolerai il DOM.

Esistono librerie esistenti che possono farlo per voi, come this one.

+0

ciò che lascia questa risposta è che il referente è generalmente inaffidabile. Non tutti i browser e le configurazioni invieranno referrer (per motivi di privacy/sicurezza in pratica). – SpliFF

+4

Sì, è vero, ma dal momento che l'evidenziazione dei termini di ricerca è fatta solo per comodità, non è un grosso problema. Se non hai un referrer non hai nulla da evidenziare. –

+0

Grazie. Che risposta eccellente. Soprattutto la biblioteca. –

7

Comprendendo questo è probabilmente troppo tardi per fare alcuna differenza ...

prega, ti prego - scoprire come eseguire questa operazione e poi mai farlo. Come utente web, trovo estremamente fastidioso (e distraente) quando mi imbatto in un sito che lo fa automaticamente. Il più delle volte finisce per evidenziare ogni altra parola sulla pagina. Se ho bisogno di assistenza per trovare una determinata parola all'interno di una pagina, il mio browser ha una funzione di "ricerca" molto più appropriata incorporata, che posso usare o non usare a piacimento, piuttosto che dover ricaricare l'intera pagina per farla andare via quando non lo voglio (che è la vasta maggioranza per la maggior parte del tempo).

+1

Mi chiedo se rappresenti la stragrande maggioranza degli utenti del Web che potrebbe essere utile. –

+1

Sono certamente d'accordo con @ 1amzave. Il mio browser ha una grande funzione di ricerca e lo userò se ne avrò bisogno. I punti salienti sono * molto * fastidiosi, specialmente se dopo una scansione rapida decido di leggere la pagina in modo approfondito. È peggiorato dal fatto che la maggior parte dei siti che lo fanno non forniscono un modo per disattivarlo. * So * come aggiustarlo, ma sono uno sviluppatore web. La maggior parte delle persone non ne ha la minima idea, il che significa che devono leggere la pagina con dozzine di parole evidenziate. E se decidono di voler stampare la pagina, o mandarla per e-mail a qualcuno in formato HTML, viene portata avanti, possibilmente in modo permanente. –

3

In sostanza, si ...

  1. Esaminare document.referrer.
  2. Dispone di un elenco di domini per ottenere il parametro che contiene i termini di ricerca.

    var searchEnginesToGetParam = { 
        'google.com' : 'q', 
        'bing.com' : 'q' 
    } 
    
  3. Estrarre il parametro GET appropriato e decodeURIComponent() esso.

  4. Analizzare i nodi di testo in cui si desidera evidenziare i termini (vedere Replacing text with JavaScript).
  5. Hai finito!
Problemi correlati