Глава 2. ОБРАБОТКА СОБЫТИЯ НА VBScript

Правила формирования записи для изменения свойств объектов

Объектная модель Windows предусматривает иерархию подчинения объектов, что позволяет изменять свойства объектов, в зависимости от того, какому уровню они подчиняются. Поэтому, всегда следует придерживаться простого правила – требуется иметь в виду, что для изменения свойства объекта или для того, чтобы получить свойство объекта, должна присутствовать пара Объект.Свойство, а для того чтобы дать полное описание объекту, где он находится, необходимо указать уровень его представления. ПРИМЕР4 демонстрирует варианты описания объекта при получении свойств значений объектов и изменения их свойств. Внешний вид Web-страницы, рассматриваемого примера, показан на рис. 6. Особенность построения HTML кодов заключается в том, что первое текстовое окно и вторая кнопка с наименованием «Очистить окна» принадлежат тегу HTML, который входит в объект Document модели браузера. Документ всегда находится в текущем окне в единственном экземпляре. Кнопка с наименование «Скопировать» и второе текстовое окно принадлежат объекту-контейнеру Form. Этот объект-контейнер может повторяться в текущем окне несколько раз, но с различными именами, т.е. такой объект представляет собой потомок объекта Document, наследует его свойства, а кроме того, может обладать собственными свойствами. Чтобы правильно работал сценарий в открытом окне, необходимо учитывать, сказанные причины.

Рис. 6. Web-страница для демонстрации правил записи свойств объекта

 

            Целесообразно рассмотреть программу, рассматриваемого примера, которая приведена на листинге 5.

Листинг 5.

<HTML>

<HEAD>

<TITLE>Копирование текста-СОБЫТИЕ</TITLE>

</HEAD>

  <INPUT TYPE="text" NAME="text1">

    <FORM Name="forma">

 Введите текст и нажмите кнопку<BR> 

      <INPUT TYPE="button" NAME="knopka" VALUE="Скопировать" OnClick=copyfun()><BR>

      <INPUT TYPE="text" NAME="text2"><BR>

    </FORM>

<SCRIPT LANGUAGE="VBScript"> 

   Sub copyfun 

     dim copytext 

     copytext=text1.value 

     forma.text2.value=copytext 

   End Sub

   Sub CL_OnClick

    text1.value=""

    window.document.forma.text2.value=""

   End Sub

</SCRIPT>

<INPUT TYPE="button" Name="CL" Value="Очистить окна">

</HTML>

Если в текстовое окно с именем Name=”text1” ввести любые символы с клавиатуры, а затем нажать на кнопку с наименованием «Скопировать», то данные из текстового окна будут переданы в текстовое окно с именем Name=”text2”. Процедура, которая выполняет указанное действие, имеет название copyfun, начинает работать после щелчка левой клавиши мыши по кнопке с наименованием «Скопировать». В процедуре copyfun создается переменная copytext, которой присваивается содержимое текстового окна, принадлежащего открытому документу, поэтому записана только пара Объект.Значение. Следующий оператор позволяет содержимое copytext передать в текстовое окно, которое принадлежит тэгу FORM. Вот этот оператор: forma.text2.value=copytext. В операторе идет ссылка на объект-контейнер FORM (forma – это имя объекта-контейнера), а затем указан объект с именем text2, у которого значению (value) передается содержимое переменной copytext. Вторая процедура с именем CL выполняет действие по очищению текстовых окон. Логика построения оператора заключается в том, что определяется вся иерархия модели браузера для объекта text2. Так как window – объект верхнего уровня, представляющий собой само окно браузера, то ясно, что все подчиненные объекты всегда наследуют его свойства. Следовательно, можно сделать вывод, что указывать объект window целесообразно только в тех случаях, когда создается новое окно в браузере, содержащее связи с родительским. В других случаях, чтобы не загромождать кодами операторы VBScript, ссылка на объект window совсем не обязательна.

 

Oglav.gifSled.gif

 

Hosted by uCoz