Как сайт выделяет поисковые термины, которые вы использовали в поисковой системе? - PullRequest
9 голосов
/ 25 мая 2009

Я видел, как некоторые сайты выделяют ключевые слова поисковой системы, которые вы использовали, чтобы попасть на страницу. (например, ключевые слова, которые вы ввели в список поиска Google)

Как он узнает, какие ключевые слова вы ввели в поисковой системе? Проверяет ли он HTTP-заголовок реферера или что-то еще? Любые доступные скрипты, которые могут сделать это? Это может быть сервер или JavaScript, я не уверен.

Ответы [ 3 ]

12 голосов
/ 25 мая 2009

Это можно сделать на стороне сервера или на стороне клиента. Ключевые слова для поиска определяются по заголовку HTTP Referer (sic). В JavaScript вы можете посмотреть на document.referrer.

Получив реферера, вы проверяете, является ли это страницей результатов поиска, о которой вы знаете, а затем анализируете условия поиска.

Например, в результатах поиска Google есть URL, которые выглядят так:

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

Параметр запроса q является поисковым запросом, поэтому вы хотите извлечь его и удалить URL-адрес, что приведет к:

programming questions

Затем вы можете искать термины на своей странице и выделять их по мере необходимости. Если вы делаете это на стороне сервера - вы бы изменили HTML перед отправкой его клиенту. Если вы делаете это на стороне клиента, вы будете манипулировать DOM.

Существуют библиотеки, которые могут сделать это за вас, например эта .

8 голосов
/ 08 июля 2009

Понимание этого, вероятно, слишком поздно, чтобы что-то изменить ...

Пожалуйста, я прошу вас - узнайте, как это сделать, а затем никогда не сделайте этого. Как веб-пользователь, я нахожу это сильно раздражающим (и отвлекающим), когда я сталкиваюсь с сайтом, который делает это автоматически. Большую часть времени он просто выделяет каждое другое слово на странице. Если мне нужна помощь в поиске определенного слова на странице, в мой браузер встроена гораздо более подходящая функция поиска, которую я могу использовать или не использовать по своему желанию, вместо того, чтобы заново загружать всю страницу, чтобы она начала работать. уйти, когда я не хочу этого (что составляет огромное большинство времени).

3 голосов
/ 30 октября 2009

По сути, вы ...

  1. Изучите document.referrer.
  2. Иметь список доменов для получения GET, который содержит условия поиска.

    var searchEnginesToGetParam = {
        'google.com' : 'q',
        'bing.com' : 'q'
    }
    
  3. Извлеките соответствующий параметр GET и decodeURIComponent() it.

  4. Разбор текстовых узлов, где вы хотите выделить термины (см. Замена текста на JavaScript ).
  5. Готово!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...