Поиск по странице клавиши. Новая версия Яндекс.Браузера: поиск по странице с учетом морфологии и поддержка жестов


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

Нам на помощь в такой ситуации приходит функция, которая есть во всех без исключения браузерах и текстовых редакторах. Называется она: "НАЙТИ" , - и вызывается нажиманием сочетания клавиш на клавиатуре "Ctrl+F" . Последнее сочетание клавиш должно работать во всех браузерах. Давайте рассмотрим, как это работает в разных программах.

Как работает функция "Найти" в браузерах

  • Вверху окна браузера появится форма, в которую и нужно вводить искомое слово.

Уже во время ввода браузер будет показывать зелёной подсветкой подходящие слова и подтягивать текст в зону просмотра. Если же такого буквосочетания нет на странице, то уже в самой форме оно будет подсвечено красным цветом.

Для того, чтобы перемещаться по тексту между найденными в нём искомыми словами, жмите стрелочки "Найти предыдущее" и "Найти далее". Естественно, если слово только одно на странице, то перемещения не состоится.

  • Жмете в меню на "Правка", а затем на "Найти на этой странице"
  • Вверху окна появится форма, в которую нужно вводить искомое слово.
  • Жмите в меню на "Правка" и выберите в открывшемся списке "Найти".
  • Внизу окна браузера появится форма. Туда вводите то слово или фразу, которые ищете.
  • Жмете на изображение ключа справа от адресной строки, а затем на "Найти..."
  • Справа вверху окна появится форма, в которую нужно вводить искомое слово.

Найденные слова будут подсвечиваться в тексте страниц оранжевым цветом. Для перемещения по странице, между найденными словами используйте кнопки стрелок в форме: "Назад" и "Вперёд".

Примечание. Лично для меня данная функция часто бывает очень полезна. Особенно если я не хочу просматривать или прослушивать мультимедиа онлайн, а затем вытаскивать его из кеша браузера Опера или других браузеров. Обычно я сначала пытаюсь найти ссылки на мультимедийные файлы, размещённые на сайтах в коде самих интернет страниц и скачать их программой Download Master. Последний можно увидеть если нажать в любом месте страницы правой кнопкой мыши и выбрать функцию в контекстном меню "Исходный код" или "Просмотр кода". Поиск веду по предполагаемому расширению файла.

Как работает функция "Найти" в текстовых редакторах

  • Откройте документ и активируйте панель "Главная"
  • Найдите справа на панели раздел "Редактирование" и нажмите на кнопку "Найти" (иконка с биноклем).
  • Вводите в появившейся форме "Найти и Заменить" нужное слово и нажмите кнопку "Найти далее".

Документ будет прокручен до первого упоминания искомого слова, которое будет выделено. Чтобы перемещаться дальше между этими словами снова жмите "Найти далее". В этой форме Ворда есть ещё много настроек для поиска и замены слов. Для того, чтобы ими воспользоваться жмите на кнопку "Больше" внизу формы.

OpenOffice

  • Открываете документ и находите справа в панели управления форму "Найти".
  • Вводите нужное слово в форму и жмёте на стрелки справа "Следующее" и "Предыдущее" Найденные слова будут выделяться в тексте документа по мере перемещения между ними.

И, для закрепления материала, смотрите видео «Как найти слово или фразу на странице», в котором наглядно показано, каким образом находятся слова или фразы в больших объёмах текста на интернет-страницах или в текстовых документах. Как работает функция "Найти" в различных браузерах и текстовых редакторах:

Многие посетители сайтов не знают о поиске по странице по нажатию Ctrl+F и ищут необходимый фрагмент глазами, просто пролистывая текст. Этот способ становится проблематичным, если на странице текста больше, чем три-четыре экрана. Для таких посетителей я решил реализовать поиск по странице с использованием jQuery.
Пример подобного поиска есть на сайте Конституции РФ , но там он работает как-то странно.

Предупреждение

Я не профессиональный программист, просьба не пинать за кривой код и возможное изобретение велосипеда.

HTML-форма

Первым делом разместим на странице HTML-код формы поиска. Форма включает два элемента - поле для ввода текста и DIV для вывода результатов поиска.

CSS

Задаём два стиля: первый - для выделения фрагмента, второй - для ссылки на первый фрагмент.
span.highlight { background-color: #C6D9DB; cursor: pointer; } span.splink { color: #0A5794; cursor: pointer; }

Настройка поиска

var minlen = 3; // минимальная длина слова var paddingtop = 30; // отступ сверху при прокрутке var scrollspeed = 200; // время прокрутки var keyint = 1000; // интервал между нажатиями клавиш

Подсветка фрагментов

Базовая функциональность - подсветка фрагментов в тексте. Делается это с помощью регулярных выражений.
function dosearch() { term = jQuery("#spterm").val(); jQuery("span.highlight").each(function(){ //удаляем старую подсветку jQuery(this).after(jQuery(this).html()).remove(); }); var t = ""; jQuery("div.entry-content").each(function(){ // в селекторе задаем область поиска jQuery(this).html(jQuery(this).html().replace(new RegExp(term, "ig"), "$&")); // выделяем найденные фрагменты n = jQuery("span.highlight").length; // количество найденных фрагментов console.log("n = "+n); if (n==0) jQuery("#spresult").html("Ничего не найдено"); else jQuery("#spresult").html("Результатов: "+n); }); } jQuery("#spterm").keyup(function(){ if (jQuery("#spterm").val()!=term) // проверяем, изменилась ли строка if (jQuery("#spterm").val().length>=minlen) { // проверяем длину строки dosearch(); // если все в порядке, приступаем к поиску } else jQuery("#spresult").html(" "); // если строка короткая, убираем текст из DIVа с результатом });

Переход между фрагментами

Мало просто выделить фрагменты, гораздо удобнее организовать быстрый переход между ними. Под формой размещаем ссылку перехода на первый найденный фрагмент. Чтобы не занимать место стрелками, клик на каждый фрагмент ведет к следующему. Клик на последний фрагмент возвращает пользователя к форме поиска.
if (n==0) jQuery("#spresult").html("Ничего не найдено"); else jQuery("#spresult").html("Результатов: "+n); if (n>1) // если больше одного фрагмента, то добавляем переход между ними { var i = 0; jQuery("span.highlight").each(function(i){ jQuery(this).attr("n", i++); // нумеруем фрагменты, более простого способа искать следующий элемент не нашел }); jQuery("span.highlight").not(":last").attr({title: "Нажмите, чтобы перейти к следующему фрагменту"}).click(function(){ // всем фрагментам, кроме последнего, добавляем подсказку jQuery("body,html").animate({scrollTop: jQuery("span.highlight:gt("+jQuery(this).attr("n")+"):first").offset().top-paddingtop}, scrollspeed); // переход к следующему фрагменту }); jQuery("span.highlight:last").attr({title: "Нажмите, чтобы вернуться к форме поиска"}).click(function(){ jQuery("body,html").animate({scrollTop: jQuery("#spterm").offset().top-paddingtop}, scrollspeed); // переход к форме поиска }); }

Задержка запуска поиска

Поиск в большом тексте и подсветка занимают несколько секунд, на которые страница зависает. При наборе длинного слова поиск производится после каждой введённой буквы.
jQuery("#spterm").keyup(function(){ var d1 = new Date(); time_keyup = d1.getTime(); if (jQuery("#spterm").val()!=term) // проверяем, изменилась ли строка if (jQuery("#spterm").val().length>=minlen) { // проверяем длину строки setTimeout(function(){ // ждем следующего нажатия var d2 = new Date(); time_search = d2.getTime(); if (time_search-time_keyup>=keyint) // проверяем интервал между нажатиями dosearch(); // если все в порядке, приступаем к поиску }, keyint); } else jQuery("#spresult").html(" "); // если строка короткая, убираем текст из DIVа с результатом });

Бонус

Добавим возможность создавать ссылки на любой текст на странице без использования . Достаточно создать ссылку на страницу и добавить #текст.
if (window.location.hash!="") // бонус { var t = window.location.hash.substr(1, 50); // вырезаем текст jQuery("#spterm").val(t).keyup(); // вставляем его в форму поиска jQuery("#spgo").click(); // переходим к первому фрагменту }

Весь код

jQuery(document).ready(function(){ var minlen = 3; // минимальная длина слова var paddingtop = 30; // отступ сверху при прокрутке var scrollspeed = 200; // время прокрутки var keyint = 1000; // интервал между нажатиями клавиш var term = ""; var n = 0; var time_keyup = 0; var time_search = 0; jQuery("body").delegate("#spgo", "click", function(){ jQuery("body,html").animate({scrollTop: jQuery("span.highlight:first").offset().top-paddingtop}, scrollspeed); // переход к первому фрагменту }); function dosearch() { term = jQuery("#spterm").val(); jQuery("span.highlight").each(function(){ //удаляем старую подсветку jQuery(this).after(jQuery(this).html()).remove(); }); var t = ""; jQuery("div#content").each(function(){ // в селекторе задаем область поиска jQuery(this).html(jQuery(this).html().replace(new RegExp(term, "ig"), "$&")); // выделяем найденные фрагменты n = jQuery("span.highlight").length; // количество найденных фрагментов console.log("n = "+n); if (n==0) jQuery("#spresult").html("Ничего не найдено"); else jQuery("#spresult").html("Результатов: "+n+". Перейти"); if (n>1) // если больше одного фрагмента, то добавляем переход между ними { var i = 0; jQuery("span.highlight").each(function(i){ jQuery(this).attr("n", i++); // нумеруем фрагменты, более простого способа искать следующий элемент не нашел }); jQuery("span.highlight").not(":last").attr({title: "Нажмите, чтобы перейти к следующему фрагменту"}).click(function(){ // всем фрагментам, кроме последнего, добавляем подсказку jQuery("body,html").animate({scrollTop: jQuery("span.highlight:gt("+jQuery(this).attr("n")+"):first").offset().top-paddingtop}, scrollspeed); // переход к следующему фрагменту }); jQuery("span.highlight:last").attr({title: "Нажмите, чтобы вернуться к форме поиска"}).click(function(){ jQuery("body,html").animate({scrollTop: jQuery("#spterm").offset().top-paddingtop}, scrollspeed); // переход к форме поиска }); } }); } jQuery("#spterm").keyup(function(){ var d1 = new Date(); time_keyup = d1.getTime(); if (jQuery("#spterm").val()!=term) // проверяем, изменилась ли строка if (jQuery("#spterm").val().length>=minlen) { // проверяем длину строки setTimeout(function(){ // ждем следующего нажатия var d2 = new Date(); time_search = d2.getTime(); if (time_search-time_keyup>=keyint) // проверяем интервал между нажатиями dosearch(); // если все в порядке, приступаем к поиску }, keyint); } else jQuery("#spresult").html(" "); // если строка короткая, убираем текст из DIVа с результатом }); if (window.location.hash!="") // бонус { var t = window.location.hash.substr(1, 50); // вырезаем текст jQuery("#spterm").val(t).keyup(); // вставляем его в форму поиска jQuery("#spgo").click(); // переходим к первому фрагменту } });

Недостатки

На больших страницах (примерно 60 кб текста) скрипт зависает на пару минут.

Спасибо за внимание, буду благодарен за замечания и идеи по улучшению работы скрипта.

Также вам наверное известно что, как правило, в строке поиска браузера есть возможность выбора из нескольких поисковых систем. По умолчанию, в любом достойном браузере (к слову, Internet Explorer 7, я не обнаружил даже google:)) там обязательно уже есть несколько систем. Обычно это google, yahoo, wikipedia (свободная энциклопедия), amazon, eBay (это что-то вроде магазинов, насколько помню). В русскоязычных сборках браузеров можно также обнаружить и yandex. Из них я обычно пользуюсь только google и wikipedia, изредка — яндексом.

Управление панелью поиска

Дело в том, что в этот инструмент можно добавлять нужные вам и удалять ненужные поисковые системы, настроив таким образом панель максимально удобно. Поисковые системы можно добавлять абсолютно любые, даже самые экзотические. К примеру, у меня встроен в браузер специальный поиск google.ru/linux, позволяющий искать информацию только по ресурсам, посвященным linux.

Наглядный пример

Давайте попробуем встроить в ваш браузер какой нибудь поиск. Я рассмотрю на примере молодой поисковой системы nigma.ru.

Чтобы встроить новый поиск в opera, нужно:

1. Открыть страницу необходимой поисковой системы.

2. Щелкнуть правой кнопкой мыши в поле ввода запроса.

3. Выбрать пункт контекстного меню «Создать поиск…»(create search…).

В результате откроется окно создания нового поиска, где вам будет предложено ввести название для этого поиска, а также ключевую клавишу. Об этой чудесной клавише напишу ниже. Если открыть вкладку «детали» можно будет выбрать опцию «Установить как поиск по умолчанию» — то есть созданный поиск всегда будет первым в списке.

Добавляем новый поиск в Mozilla

Если вы пользуетесь браузером Mozilla-Firefox, то порядок добавления поисковой системы следующий: нужно установить соответсвующий плагин для него. Для этого щелкните левой кнопкой мыши по стрелке открывающей меню выбора поисковика. Последним пунктом будет стоять «управление поисковыми плагинами». При его выборе откроется соответствующее окно, в котором можно удалять или изменять настройки уже установленных плагинов поисковых систем. Внизу этого менеджера есть ссылка, которая ведет на страницу, где можно найти, получить и установить новые плагины.

Там же, в этом окне можно задать ключевую клавишу каждому поисковику, которым вы пользуетесь, это та же самая клавиша о которой я упоминал рассказывая об Opera.

Internet Explorer

Процедура установки нового поиска в Internet Explorer чем то похожа на оную для firefox. Открываете меню выбора поисковика, выбираете пункт — нечто вроде «Найти других поставщиков». Браузер перейдет на страницу где описаны шаги дальнейших действий. А именно, вам предложат открыть страницу нужной вам поисковой системы, набрать слово TEST (именно в верхнем регистре) в строке запроса поисковика.

Затем нужно будет скопировать ссылку из адресной строки браузера со странички где вы открыли поисковик в форму на страничке сервиса установки поисковой системы. Ввести имя в эту же форму, и щелкнуть кнопку там же. В результате будет сгенерирован XML-файл, который и добавит в панель поиска вашего браузера эту поисковую систему.

В internet explorer ключевой клавиши не предусмотрено.

Каждый из нас во время Интернет-серфинга наверняка не раз сталкивался с необходимостью поиска на странице какого-нибудь ключевого слова. К счастью, все современные браузеры имеют встроенный поиск, а иначе страшно даже и подумать, во что бы превратился поиск одного единственного слова на странице, скажем, объемом 10000 символов. И надо сказать до недавнего момента возможности поисковой системы браузеров и меня совершенно устраивали.

Но вот случилось нечто, что заставило меня пересмотреть свое отношение к поисковым механизмам этих веб-обозревателей. Мне нужно было найти на страничке не одно слово, а сразу три! И вот тут-то оказалось, что ни Google Chrome, ни Firefox, а точнее их поисковые системы совершенно неспособны справиться с подобной задачей. Решить проблему мне помогли плагины, специально созданные для расширения поискового функционала в вышеупомянутых браузерах.

SearchWP для Firefox

Очень простой и полезный плагин, позволяющий выполнять поиск по нескольким ключевым словам одновременно. Работает SearchWP в трех режимах: поиск в Интернете, поиск по сайту и наконец, по конкретной страничке.

После установки плагин добавляет на панель инструментов Firefox кнопку с изображением маркера, при нажатии на нее введенные в поисковую строку слова будут подсвечиваться разными цветами, при этом одновременно теми же цветами будут выделены слова на страничке.

Чтобы перейти к определенному слову в тексте достаточно кликнуть по нему мышкой. Нажатие клавиши Enter запускает поиск в Интернете, для поиска по конкретному сайту сначала нужно будет добавить его в список SearchWP. Настройки плагина предельно просты, в них вы можете указать минимальную длину искомого слова.

Скачать SearchWP для Firefox: www.addons.mozilla.org

Pearls Extension для Google Chrome

Неплохое поисковое расширение для Google Chrome. Выполняет поиск по нескольким ключевым словам, подсвечивая их разными цветами. Особенностью этого плагина является способность запоминать ранее введенные поисковые запросы для каждого домена в отдельности. При этом Pearls Extension показывает количество найденных слов на странице, присутствует возможность перехода (вперед-назад).

Да, очень важно, чтобы запросы вводились через запятую. Наряду со всеми достоинствами Pearls Extension имеет преогромный минус – с кириллицей он не работает, так что искать можно только латинские слова.

Скачать Pearls Extension для Google Chrome: www.chrome.google.com

MultiHighlighter для Chrome

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

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

efTwo (F2) для Chrome

И напоследок хочу предложить вашему вниманию весьма оригинальный по исполнению плагин для Google Chrome под названием efTwo (F2). Главной особенностью данного решения является использование “горячих” клавиш, причем на выбор пользователя предлагается четыре варианта клавиатурных сокращений – F2, CTRL +ALT + F, CTRL + SHIFT + F или быстрый двойной удар по кнопке F .

Плагин efTwo (F2) умеет запоминать введенные ключевые слова для каждой страницы, отображать количество найденных слов, поддерживает быстрое удаление слов из поискового поля, имеет гибкие настройки управления функционалом.

Присутствует функция перехода “вперед-назад”. Реализована она довольно интересно – результаты поиска помечаются небольшими цветными маркерами, рядом с правой кромкой браузерного окна. Для перехода к нужной позиции можно использовать как мышь, так и “горячие” клавиши.

Итог

Ну вот, на первый раз достаточно. Жаль, конечно, что не мне так и не удалось найти больше достойных плагинов для Firefox.

SearchWP хорош, но хотелось бы иметь под рукой какую-нибудь альтернативу. Ну и как-то несправедливо было обойти Opera, все-таки это тоже весьма популярный и замечательный во многих отношениях браузер…

Возможно, к теме поиска я еще вернусь, и может быть даже не раз, а пока все, как всегда ждем ваших отзывов.

Каждому юзеру приходится искать-либо на страницах сайтов. Это может быть не статья или новость целиком, а конкретный абзац или отрывок текста, где находится ключевое слово или фраза. Если на странице много текста, а нужен только кусок с искомым описанием, то юзаем поиск слов в браузере. Это функция, идентичная с поиском в Ворде, Экселе или PDF-редакторах.

Панели поиска в браузерах

В каждом браузере есть своя панель поиска. Чтобы вызвать ее, следует нажать Ctrl+F. Рассмотрим панели поиска таких браузеров как Хром, Firefox и Яндекс Браузер.

Поиск текста в Google Chrome

Открыть панель в Хроме можно другим способом, нажав на меню и выбрав функцию «Найти…».

Находясь на любой странице, набираем интересующее слово или фразу и нажимаем enter. Как видно на скриншоте, найденное слово подсвечено оранжевым. На панели указано количество найденных слов. С помощью стрелок осуществляется переход от одного результата к другому.

Поиск текста в Mozilla Firefox

В Firefox панель поиска более продвинутая и удобная. Обладает следующими опциями:

  • подсветить все;
  • с учетом регистра;
  • только слова целиком.


«Подсветить все», как вы догадались, позволяет увидеть все нужные слова в документе.

Функция «С учетом регистра» придает поиску чувствительность к большим и маленьким буквам. Например, если вы напечатали слово «нефть», то есть слово с маленькой буквы, то в качестве совпадений варианты «Нефть» или «НЕФТЬ» учитываться не будут.

Поиск при помощи опции «Только слова целиком» отсеивает слова со склонениями и окончаниями. Вобъем персидское слово «нефт», чтобы проверить результат.

Поиск текста в Яндекс Браузере

Браузер Яндекса имеет аналогичную с Хромом панель поиска текста, однако обладает крутой лингвистической системой. Известно, что Яндекс как поисковик лучше любой другой системы понимает русский язык. Именно это преимущество дает пользователю возможность находить среди текста на странице нужный фрагмент или отдельные предложения с максимальным количеством вариантов. Алгоритм поиска текста учитывает падежи, склонения, число, род, часть речи.