Когда мы используем функцию «веб-снимок» большинства поисковых систем, они добавляют выделение ключевых слов на возвращаемую страницу снимка. Нам будет очень удобно находить полученный контент на веб-странице. Подсветка ключевых слов в снимках Google также включает функцию сегментации слов, и разные слова окрашиваются в разные цвета. Однако из-за %!#^*&$! снимок веб-страницы Google работает очень нестабильно, поэтому давайте сами добавим эту функцию выделения ключевых слов.
Как показано ниже, когда мы искали ключевое слово: apache asp.net в Google, результаты были такими:

После нажатия на ссылку результата и перехода на нашу собственную страницу, если мы выделим следующие ключевые слова, будет ли пользователям легче быстро найти и найти интересующий контент на странице?

Давайте присмотримся, но адрес в IE явно такой: http://birdshome.cnblogs.com/archive/2005/11/17/Apache.html , так как же его выделить на странице и получить поиском? двигатель? Здесь мы используем атрибут Referrer документа для получения информации о типе поисковой системы и ключевом слове. Например, в приведенном выше примере атрибут document.referrer имеет следующий вид: http://www.google.com/search?hl=zh-CN&newwindow=1&q=apache+asp.net&btnG=%E6%90%9C%E7%. B4%A2&lr =lang_zh-CN%7Clang_zh-TW . Мы анализируем ключевые слова указанной поисковой системы с помощью JavaScript, а затем обрабатываем объект DOM страницы для реализации функции выделения. Однако для длинных последовательных ключевых слов на китайском языке это решение для выделения на стороне клиента не может обеспечить функцию сегментации слов, что является ложкой дегтя.
Код для реализации выделения ключевого слова поиска на текущей странице выглядит следующим образом. Просто поместите его в событие document.body.onload страницы и вызовите его :) функцию FriendlyDisplayForSearch().
{
вар URL = новый UrlBuilder(document.referrer);
если (url.m_Success)
{
вар хост = url.m_Host.toLowerCase();
если (host.indexOf('.google.') != -1 )
{
var ключевые слова = url.GetValue('q', 'UTF8');
если (ключевые слова)
{
вар ht = новый HighlightText ();
ht.Execute(ключевые слова);
}
}
иначе, если (host.indexOf('.baidu.') != -1)
{
}
}
}// Из-за связи между кодировкой и частотой использования в настоящее время выполняется только
функция поисковой системы Google HighlightText(range)
{
если (диапазон)
{
this.m_Range = диапазон;
}
еще
{
this.m_Range = document.body.createTextRange();
}
this.m_Keyword = '';
this.toString = функция()
{
вернуть '[класс HightlightText]';
};
}
HighlightText.prototype.Execute = функция (ключевое слово)
{
если (ключевое слово)
{
this.m_Keyword = ключевое слово;
}
если ( this.m_Range && this.m_Keyword )
{
вар разделитель = ' ';
если ( this.m_Keyword.indexOf(' ') == -1)
{
разделитель = '+';
}
var ключевые слова = this.m_Keyword.split(разделитель);
var bookmark = this.m_Range.getBookmark();
for (var i=0; i <keywords.length; ++i)
{
вар ключевое слово = ключевые слова [я];
if (ключевое слово && ключевое слово.длина > 1)
{
while(this.m_Range.findText(ключевые слова[i]))
{
this.m_Range.execCommand('ForeColor', 'false', 'highlighttext');
this.m_Range.execCommand('BackColor', 'false', 'highlight');
this.m_Range.collapse(ложь);
}
this.m_Range.moveToBookmark(закладка);
}
}
}
}