Подсветка слов поиска

По англицки это search highlighting. В принципе это можно делать на php или другом серверном языке, но на javascript всё же проще.

Я использовал код kryogenix.org , который полез немного не в ту степь и подсвечивать стал не результаты поиска, а слова после перехода с поисковых систем, из-за чего он достаёт поисковую фразу из Referer, тогда как в действительности нужно брать из действующей страницы.


Итого - устанавливаем скрипт и меняем в функции googleSearchHighlight строчку на

ref = window.location.href;//document.referrer;

Потом прикручиваем стиль типа

span.searchword{background-color:yellow;}

и получаем, что запрос с GET параметром q=someword подсвечивает слова в документе. Если же надо что-бы подсветка была только внутри скажем div элемента, то надо отредактировать

highlightWord(document.getElementsByTagName("body")[0],words[w]);

В качестве большой проблемы следует отметить проблемы с UTF-8. Javascript русские буквы не понимает вообще, а мои эксперименты привели к

mb_eregi_replace('('. quotemeta($_GET['q']) .')', '\\1', $title);

Которая даже с всевозможными настройками через ini_set() замещала лишь точные фразы,т.е. отсутствовала чувствительность к регистру

RSS

Комментарии

  • Daset
    С utf-8 мне помог этот способ: http://ecmanaut.blogspot.com/2006/07/encoding-decoding-utf8-in-javascript.html
  • Саня
    У меня не получается. Прочитал внемательно эту инструкцию, сделал все по ней, но слова все рано не выделяются! Подскажите пожауйста в чем может быть проблема!