Глава 5. АВТОМАТИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ  ПОЛЬЗОВАТЕЛЯ С WEB-СТРАНИЦАМИ

Поиск текстовых фрагментов на странице

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

Рис. 38. Пример формирования поискового предписания для поиска текстового фрагмента на Web-странице в интерактивном режиме

Запуск примера осуществляется при нажатии на гиперссылку: ПРИМЕР18. Программные коды примера представлены в листинге 20.

Листинг 20.

<HTML>

 <HEAD>

  <TITLE>Поиск в текстовой области</TITLE>

 <SCRIPT Language="VBScript">

Dim obj

 Sub find2_Onclick()

  If W.Value ="" Then

   alert "Вы не ввели запрос"

 Else

   Set obj=window.document.body.createTextRange()

    obj.findText(W.Value)

    obj.scrollIntoView()

    obj.select()

 End if

End Sub

 Sub find1_Onclick()

  If W.Value ="" Then

   alert "Вы не ввели запрос"

 Else

   Set obj=document.all.text.createTextRange()

    obj.findText(W.Value)

    obj.scrollIntoView()

    obj.select()

 End if

End Sub

 </SCRIPT>

 </HEAD>

 

  <BODY BgColor="#FFFACD">

<P Align=Center>

    Ведите поисковое предписание запроса<BR>

   <INPUT TYPE="TEXT" Name="W" Value="" Size=43><BR>

   <INPUT TYPE="BUTTON" Name="find1"

                                Value="ПОИСК В ТЕКСТОВОМ ОКНЕ"><BR>

   <INPUT TYPE="BUTTON" Name="find2" Value="НАЙТИ НА WEB - СТРАНИЦЕ">

    <BR>

В текстовую область можно вводить текст,<br>

а затем искать нужные слова или символы<BR>

   <Textarea ID="text" Rows=5 Cols=25

     Style="font-size:14pt; color:Navy; font:bold; BackGround:#EEE8AA">

   </Textarea><BR>

</P>

<P Align=Center>

<DIV ID="t1" Align=Center

           Style="font-size:12pt; color:Navy; font:bold; BackGround:#ADFF2F">

В этом выделенном фрагменте на экране<br>

можно осуществить поиск необходимого<br>

слова или сочетания символов, которые<br>

расположены в непосредственной близости

</DIV>

</P>

<A TARGET="Location" HREF="Dop_files/Code4.txt"

      Title="Будет открыто окно с программой данного приложения">

      Посмотреть программные коды

</A>

 </BODY>

</HTML>

Для решения задачи поиска в тексте используется объект TextRfnge (Текстовая область). Этот объект обеспечивает доступ к текстовой информации, находящейся в объектах, которые соответствуют тегам <BODY>, <TEXTAREA> и <INPUT TYPE=text>. В примере (рис. 38) созданы две процедуры под именами find1 и find2, чтобы показать, как можно разделить поиск только в текстовом окне от поиска символов на всем экране браузера. После того, как пользователь введет поисковое предписание в верхнее текстовое окно, и нажмет на кнопку с наименованием «ПОИСК В ТЕКСТОВОМ ОКНЕ» в процедуре find2() будут задействованы три метода, относящиеся к объекту текстовая область (имя этого объекта – obj).

Метод findText(W.Value) позволяет осуществить поиск в текстовой области (all.text – для объекта на странице тега <TEXTAREA>) по введенным символам в объект с именем W. С помощью метода scrollIntoView() содержимое окна прокручивается так, чтобы найденные символы были видны на экране, и, наконец, метод select() позволяет найденное сочетание символов выделить другим цветом (подцветка). Если посмотреть внимательно на содержимое процедуры обработки события щелчка левой клавишей мыши по кнопке с наименованием «НАЙТИ НА WEB-СТРАНИЦЕ», то различие будет только в описании метода createTextRange() – создать текстовую область для объекта, который принадлежит всему документу. Т.е. вместо all.text, стоит запись – body, обозначающая тело всей Web-страницы. Чтобы убедиться в том, что действительно поиск будет проведен по всем объектам, которые принадлежат документу, загруженному в браузер, введен еще один выделенный объект. Этот объект - t1, заключен в теге-контейнере <DIV>. Если  ввести в качестве поискового предписания, например, слово «близости», то после нажатия на вторую кнопку, это слово будет найдено.

 

Oglav.gifSled.gif

 

Hosted by uCoz