Visual Basic + HTML = VBScript

Михаил Евдокимов
Мир ПК #10-11 1997

Создание скриптов
Процедуры
Объект
Установка свойств для элементов управления и объектов
Обработка событий
Вызов методов
Объектная модель Internet Explorer 3.0

Данная статья предназначена тем, кто хотел бы получить представление о программировании на Visual Basic Script, подмножестве языка Visual Basic. VBScript позволяет решать задачи, связанные с Internet, а именно создавать сценарии (или скриптыСкриптовый язык (англ.scripting language, в русской литературе принято название язык сценариев)— язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (англ.batch languages или job control languages). Сценарии обычно интерпретируются, а не компилируются (хотя всё чаще применяют компиляцию каждый раз перед запуском).) управления объектами (кнопками, списками, ниспадающими меню и т. д.) на Web-страничках. Для понимания этого материала нужно иметь представление о структуре HTML-документа, а также основах программирования на Visual Basic. Описанные в статье сценарии могут быть использованы в браузере MicrosoftMicrosoft (Microsoft Corporation, читается «майкрософт», NASDAQ: MSFT)— одна из крупнейших транснациональных компаний по производству программного обеспечения для различного рода вычислительной техники— персональных компьютеров, игровых приставок, КПК, мобильных телефонов и прочего, разработчик наиболее широко распространённой на данный момент в мире программной платформы— семейства операционных систем Windows. Internet Explorer 3.0. Другие браузеры попросту не понимают этого языка. В настоящее время существуют всего два языка создания сценариев по управлению объектами - Microsoft VBScript и Sun JavaScript. Оба поддерживаются IE 3.0. Браузер же компанииЮридическое лицо— созданная и зарегистрированная в установленном законом порядке организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде. Юридические лица должны иметь самостоятельный баланс или смету. Netscape воспринимает только JavaScript.

С помощью VBScript вы можете быстро создавать собственные страницы или даже писать игры. И все это размещается внутри вашего HTML-документа. Если вы уже имели дело с Visual Basic или Visual Basic for Applications, то легко справитесь и с VBScript.

Создание скриптов

Для того чтобы браузер мог различать команды VBScript, нужно все операторы VBScript на HTML-страницах обрамлять тегами <SCRIPT> и </SCRIPT>. Первый из них используется в паре с атрибутом LANGUAGE для определения языка создания сценария. В нашем случае - Visual Basic Script (хотя может быть и JavaScript). ЗначениеЗначение— ассоциативная связь между знаком и предметом обозначения.м для этого языка является "VBScript":

<HTML>
<HEAD><TITLE>Пример странички с фрагментом на VBScript</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!-
Sub Button1_OnClick
        MsgBox "VBScript - Rulez Forever!"
End Sub
-></SCRIPT>
</HEAD>
<BODY>
<H3>Обычная первая страничка</H3><HR>
<FORM><INPUT NAME="Button1" TYPE="BUTTON" VALUE="Click Here"></FORM>
</BODY>
</HTML>

Тег <SCRIPT> имеет завершающую часть - </SCRIPT>. Всегда употребляйте их парой! СценарийСценарий— литературно-драматическое произведение, написанное как основа для постановки кино- или телефильма. Сценарий в кинематографе, как правило, напоминает пьесу и подробно описывает каждую сцену и диалоги персонажей. Иногда сценарий представляет собой адаптацию отдельного литературного произведения для кинематографа, иногда в этом случае автор романа бывает и автором сценария (сценаристом). в нашем примере помещается в специальные скобки <!-...->, которые в языке HTML обозначают комментарий. Это делается для того, чтобы старые браузеры, которые не умеют работать со скриптСкриптовый язык (англ.scripting language, в русской литературе принято название язык сценариев)— язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (англ.batch languages или job control languages). Сценарии обычно интерпретируются, а не компилируются (хотя всё чаще применяют компиляцию каждый раз перед запуском).овыми языками, случайно не отобразили сценарий на экране. Для них он - просто комментарий.

При разработке приложения на VBScript необходимо знать концепцию этого языка, а также иметь представление о том, как работают объекты, события и процедуры. Это поможет вам в дальнейшем разобраться в функционировании объектной модели InternetИнтернет (произносится [интэрнэт]; англ.Internet)— всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных. Часто упоминается как «Всемирная сеть» и «Глобальная сеть». В обиходе иногда говорят «Инет». Explorer 3.0 и объектов ActiveX. Помните, что объекты и VBScript связаны друг с другом.

Процедуры

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

Виды процедур

В VBScript существует два вида процедур: подпрограмма (Sub) и функция (Function). ПодпрограммаПодпрограмма (англ.subroutine)— поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства. (Sub) - это последовательность VBScript-операторов, обрамляемая операторами Sub и End Sub. Подпрограммы могут принимать параметры (константы, переменные или выражения, которые передаются при вызове процедуры), но не возвращают значений. Если подпрограмма не содержит параметров, то ее оператор должен включать пустой набор круглых скобок. Следующая подпрограммаПодпрограмма (англ.subroutine)— поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства. использует две функции языка VBScript - InputBox и MsgBox. Она запрашивает у пользователя ввод температуры в градусах Фаренгейта, переводит ее в градусы Цельсия и отображает результатРезультат— заключительное последствие последовательности действий или событий, выраженных качественно или количественно. Возможные результаты включают преимущество, неудобство, выгоду, потерю, ценность и победу.. Вычисление температуры происходит в функции Celsius.

<SCRIPT LANGUAGE="VBScript">
<!-
Sub ConvertTemp()
temp = InputBox("Please enter the temperature in degrees 
                F.", 1)
MsgBox "The temperature is " & Celsius(temp) & " degrees C."
End Sub
-></SCRIPT>

ФункцияФункция— многозначный термин, который означает такое отношение между элементами, в котором изменение в одном влечет изменение в другом. (Function) - это последовательность операторов VBScript, обрамляемая операторами Function и End Function. Она похожа на подпрограмму, но отличается от последней тем, что может возвращать некоторое значение. Функция может принимать параметры (константы, переменные или выражения, передаваемые при вызове). Если она не содержит параметров, то оператор Function должен включать пустой набор круглых скобок. Возвращаемый тип у Function - Variant.

В следующем примере функция Celsius переводит градусы Фаренгейта в градусы Цельсия. Когда вызывается функция из подпрограммы ConvertTemp, переменнаяПеременная— атрибут физической или абстрактной системы, который может изменять своё значение. Значение может меняться в зависимости от контекста, в котором рассматривается система, или в случае уточнения, о какой конкретно системе идёт речь. Концепция переменной широко используется в таких областях как математика, естественные науки, техника и программирование. Примерами переменных могут служить температура воздуха, параметр функции и многое другое. В широком смысле, переменная характеризуется лишь множеством значений, которые она может принимать., содержащая параметр-значение, передается в функцию. РезультатРезультат— заключительное последствие последовательности действий или событий, выраженных качественно или количественно. Возможные результаты включают преимущество, неудобство, выгоду, потерю, ценность и победу. вычисленияВычисление — математическое преобразование, позволяющее преобразовывать входящий поток информации в выходной, с отличной от первого структурой. Если смотреть с точки зрения теории информации, вычисление - это получение из входных данных нового знания. возвращается в вызывающую процедуру и отображается в MsgBox.

<SCRIPT LANGUAGE="VBScript">
<!-
 Sub ConvertTemp()
     temp = InputBox("Please enter the temperature in 
            degrees F.", 1)
     MsgBox "The temperature is " & Celsius(temp) & " 
            degrees C."
 End Sub

 Function Celsius(fDegrees)
     Celsius = (fDegrees - 32) * 5 / 9
 End Function
->
</SCRIPT>

Перед использованием процедур в своей программе вы должны их объявить. Их нужно всегда«Всегда» — кинофильм. Детям рекомендуется просмотр совместно с родителями. размещать в самом начале раздела <HEAD> вашей HTML-странички. Весь последующий текст должен также находиться в разделе <HEAD>. Операторы Function и Sub, подобно другим элементам языка VBScript, располагаются между парой тегов <SCRIPT LANGUAGE="VBScript"> </SCRIPT> для правильного их распознавания браузером. Кроме того, теги комментария (<! - и - >) окружают текст программы внутри тега <SCRIPT>, гарантируя, что сценарий не будет отображаться в браузерВеб-обозреватель, браузер (от англ.Web browser; вариант броузер — устаревшая и менее предпочтительная форма) — программное обеспечение для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети), их обработки, вывода и перехода от одной страницы к другой.ах, которые не поддерживают VBScript.

Любые данные передаются в ваши процедуры в виде параметров. При создании подпрограммы (или функции) после ее имени должны быть круглые скобки. Любые параметры внутри них отделяются запятыми. В следующем примере параметр fDegrees передает значения в функцию Celsius для преобразования:

<SCRIPT LANGUAGE="VBScript">
<!-
 Function Celsius(fDegrees)
    Celsius = (fDegrees - 32) * 5 / 9
 End Function
->
</SCRIPT>

Используйте функции вместо подпрограмм, если требуется возвратить некоторое значение.

Использование подпрограмм и функций

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

<SCRIPT LANGUAGE="VBScript">
<!-
 Temp = Celsius(fDegrees)
->
</SCRIPT>

или

<SCRIPT LANGUAGE="VBScript">
<!-
 MsgBox "The Celsius temperature is " & Celsius(fDegrees) & 
       " degrees."
->
</SCRIPT>

Чтобы вызвать одну процедуру из другой, необходимо написать имя первой со значениями требуемых параметров, каждый из которых должен отделяться от предыдущего запятой. Оператор Call не требуется. Но если вы все-таки используете его, то нужно заключить любые параметры в круглые скобки. Следующий пример показывает две возможности вызова процедуры MyProc. Один использует оператор Call, другойДругой — центральная категория современной философии. Актуализация данного понятия связана с такими событиями, как антропологический и лингвистический поворот. Другой — это не Я, тот, кто противостоит мне, находится по ту сторону меня, моих ценностей, моего мировоззрения. И вместе с тем, Другой такой же как Я: он мыслит, чувствует, ходит и т. д. - нет. Оба выполняют одно и то же.

<SCRIPT LANGUAGE="VBScript">
<!-
 Call MyProc(firstarg, secondarg)
 MyProc firstarg, secondarg
->
</SCRIPT>

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

Объект

Объект (Object) - это простой объект, методами, свойствами и событиями которого вы можете управлять. Метод - это процедура или просто набор команд, сообщающих объекту, что нужно выполнить некоторую задачу. СвойствоСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона. - это некоторый вид параметра объекта. Событие - это сигналСигнал (в теории информации и связи)— материальный носитель информации, используемый для передачи сообщений в системе связи. Сигнал, в отличие от сообщения, может генерироваться, но его приём не обязателен (сообщение должно быть принято принимающей стороной, иначе оно не является сообщением, а всего лишь сигналом). Сигналом может быть любой физический процесс, параметры которого изменяются в соответствии с передаваемым сообщением., подаваемый, если с объектом что-то происходит. И методыМетод (от греч. — «способ»)— систематизированная совокупность шагов, действий, которые необходимо предпринять, чтобы решить определенную задачу или достичь определенной цели. В отличие от области знаний или исследований, является авторским, то есть созданным конкретной персоной или группой персон, научной или практической школой. В силу своей ограниченности рамками действия и результата, методы имеют тенденцию морально устаревать, преобразовываясь в другие методы, развиваясь в соответствии с временем, достижениями технической и научной мысли, потребностями общества. Совокупность однородных методов принято называть подходом. Развитие методов является естественным следствием развития научной мысли., и свойства, и события разработчик выбирает сам, исходя из потребностей задачи. Так, если в вашей программе нужно отследить время окончания работы, то имеет смысл обращать вниманиеВнимание— избирательная направленность восприятия на тот или иной объект. на событие, сигнализирующее об этом. В противном случае эта информацияИнформация (от лат.informatio— осведомление, разъяснение, изложение, от лат.informare— придавать форму)— в широком смысле абстрактное понятие, имеющее множество значений, в зависимости от контекста. В узком смысле этого слова— сведения (сообщения, данные) независимо от формы их представления. Сведения об объектах живой или неживой природы, их свойств и взаимном влиянии друг на друга. бесполезна.

Объектная модель

Рассмотрим объект ActiveX Label (объект и элемент управления для VBScript фактически означают одно и то же). Он состоит из свойств и имеет один метод. Некоторые из его свойств включают заголовок (Caption), цвет фона (BackColor), цвет шрифта (ForeColor), размер (FontSize) и стиль шрифта (FontName). Его методом является About Box, отображающий при вызове окно с информацией об ActiveX. Событием для Label является перемещение указателя мыши над Label. Существует специальный тег <OBJECT> для вставки объектов в HTML-страницу. В его синтаксисе используются два тега: <OBJECT> и <PARAM>. Первый - для определения используемого объекта, а также других главных параметров, связанных с объектом; второйВторой — второй по счёту альбом песен Владимира Высоцкого в исполнении Григория Лепса, записанный и вышедший в 2007 году - для установки разных свойств объекта, определенного тегом <OBJECT>, во вложенных тегах <PARAM>. Атрибуты тега <OBJECT> перечислены в табл. 1, а тэга <PARAM> - в табл. 2.

Таблица 1.
Атрибуты тэега <OBJECT>.

Атрибут Назначение
ID Определяет имя объекта в документе
CLASSID Класс, к которому принадлежит объект; может быть уникальным универсальным идентификатором или другой группой классов типа Java. Для элементов управления ActiveX - это идентификационный номер класса в системном реестре вашей системы
DATA Адрес, откуда объект должен получать данные; может включать данныеДанные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. для определения всех свойств классов
CODEBASE Адрес, где находится код объекта
TYPE Тип Internet MIME (например: application/x-oleobject будет определять OLE-объектОбъект (лат.objectum— предмет)— философская категория, если определять её в пределах эпистемологии, выражающая нечто, существующее в реальной действительности (то есть независимо от сознания)— предмет, явление или процесс, на которые направлена предметно-практическая и познавательная деятельность субъекта (наблюдателя). В качестве объекта может выступать и сам субъект, в качестве субъекта выступает личность, социальная группа или всё общество., который должен использоваться как код)
HEIGHT Высота границы объекта
WIDTH Ширина границы объекта

Таблица 2.
Атрибуты тега <PARAM>.

Атрибут Назначение
NAME Определяет имя объекта, которое должно использоваться
VALUE Определяет значение, которое должно быть присвоено свойству объекта, определенному в NAME

Теперь посмотрим на исходный текст, приведенный в примере для элемента управления - Label.

<HTML> 
<HEAD> 
<TITLE>Пример, демонстрирующий объект ActiveX</TITLE> 
</HEAD> 
<BODY BGCOLOR="steelblue"> 
<OBJECT ID="mylabel" WIDTH="100" HEIGHT="51" 
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> 
<PARAM NAME="_ExtentX" VALUE="2646"> 
<PARAM NAME="_ExtentY" VALUE="1349"> 
<PARAM NAME="Caption" VALUE="This is label 1"> 
<PARAM NAME="Angle" VALUE="0"> 
<PARAM NAME="Alignment" VALUE="4"> 
<PARAM NAME="Mode" VALUE="1"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="ForeColor" VALUE="#000000"> 
<PARAM NAME="BackColor" VALUE="#C0C0C0"> 
<PARAM NAME="FontName" VALUE="Arial"> 
<PARAM NAME="FontSize" VALUE="12"> 
<PARAM NAME="FontItalic" VALUE="0"> 
<PARAM NAME="FontBold" VALUE="0"> 
<PARAM NAME="FontUnderline" VALUE="0"> 
<PARAM NAME="FontStrikeout" VALUE="0"> 
<PARAM NAME="TopPoints" VALUE="0"> 
<PARAM NAME="BotPoints" VALUE="0"> 
</OBJECT> 
</BODY> 
</HTML>

Для тега <OBJECT> определено несколько параметров, которые предоставляют полезную информацию относительно используемого объекта. Сначала определяется имя объекта "mylabel", затем свойства: ширинаДлина— физическая величина, числовая характеристика протяжённости линий. В узком смысле под длиной понимают линейный размер предмета в продольном направлении (обычно это направление наибольшего размера), то есть расстояние между его двумя наиболее удалёнными точками, измеренное горизонтально, в отличие от высоты, которая измеряется в вертикальном направлении, а также ширины или толщины, которые измеряются поперёк объекта (под прямым углом к длине). В физике термин «длина» обычно используется как синоним «расстояния» и обозначается L или l. и высота. Далее элемент управления идентифицируется параметром "CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" точно так, как он обозначается в системном реестре вашей операционной системы. Вложенные тэги <PARAM> содержат свойства объекта Label. Атрибут NAME используется, чтобы определить, какое свойствоСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона. должно использоваться, а VALUE - для связи значения с этим свойством. Весь этот процесс автоматизирует программа ActiveX Control Pad. В ней есть окно, позволяющее корректировать свойства любого элемента управления (см. статью "Размещение ActiveX на страницах Web", "Мир ПК", # 2/97, с. 51).

Использование объектов

Теперь вы знаете, что для включения объектов в HTML-документ нужно использовать пару тегов <OBJECT></OBJECT>, а для установки значений его свойств - тег <PARAM>. Если вы имели дело с программированием на Visual Basic, то использование тегов <PARAM> будет напоминать вам размещение какого-либо компонентаКомпонент— (от лат.componens, родительный падеж componentis — составляющий), составная часть, элемент чего-либо. В разных отраслях науки и техники может иметь дополнительное, более специфическое значение. или элемента управления на форме. Например, следующие значения тегов <OBJECT> и <PARAM> добавляют на страничку (вместо формы в Visual Basic) элемент ActiveX Label:

<OBJECT
        classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
        id=lblActiveLbl
        width=250
        height=250
        align=left
        hspace=20
        vspace=0>
<PARAM NAME="Angle" VALUE="90">
<PARAM NAME="Alignment" VALUE="2">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="Caption" VALUE="A Simple Desultory Label">
<PARAM NAME="FontName" VALUE="Arial">
<PARAM NAME="FontSize" VALUE="20">
<PARAM NAME="FontBold" VALUE="1">
<PARAM NAME="FrColor" VALUE="0">
</OBJECT>

Вы можете присваивать или устанавливать свойства, а также вызывать методы точно так же, как с любым средством управления формой. Следующий текст, например, включает элементы <FORM>, которые могут использоваться для управленияУправление— воздействие субъекта, направленное на достижение абстрактной (неконкретной), но вынужденно-корректируемой цели (задачи, идеи) в уже сложившихся рамках правил, которые неизбежно-совершенствуются когда субъект непротиворечивее познаёт реальность, с которой сосуществует. свойствами двух элементов Label:

<FORM NAME="LabelControlCtrl (сокращение от Control, произносится /kntrl/)— системная кнопка (клавиша) на компьютерной клавиатуре.s">
<INPUT TYPE="TEXT" NAME="txtNewText" SIZE=25>
<INPUT TYPE="BUTTON" NAME="cmdChangeIt" VALUE="Change Text">
<INPUT TYPE="BUTTON" NAME="cmdRotate" VALUE="Rotate Label">
</FORM>

Обработчик события нажатия кнопки cmdChangeIt изменяет текст объекта Label:

<SCRIPT LANGUAGE="VBScript">
<!-
Sub cmdChangeIt_onClick
        Dim TheForm
        Set TheForm = Document.LabelControls
        lblActiveLbl.Caption = TheForm.txtNewText.Value
End Sub
->
</SCRIPT>

Некоторые теги (прежде всего для управления вводом информации в форму) и элементы ActiveX могут обращаться к отдельным процедурам вашего сценария (скрипта), запускаемого событием. СобытияСобытие— то, что имеет место, происходит, наступает в произвольной точке пространства-времени; значительное происшествие, явление или иная деятельность как факт общественной или личной жизни; подмножество исходов эксперимента. могут вызываться из тегов <A>, <BODY>, <INPUT> и <OBJECT>. В примере, который приводится ниже, при нажатии кнопки изменяется текст объекта Label:

<HTML> 
<HEAD> 
<TITLE>Использование объектов с событиями</TITLE> 
</HEAD> 
<BODY BGCOLOR="slateblue"><BR> 
<CENTER> 
<OBJECT ID="MyLabel" WIDTH=215 HEIGHT=93 
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> 
<PARAM NAME="_ExtentX" VALUE="5689"> 
<PARAM NAME="_ExtentY" VALUE="2461"> 
<PARAM NAME="Caption" VALUE="Watch me change!!"> 
<PARAM NAME="Angle" VALUE="0"> 
<PARAM NAME="Alignment" VALUE="4"> 
<PARAM NAME="BackStyle" VALUE="1"> 
<PARAM NAME="Mode" VALUE="1"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="FillStyle" VALUE="1"> 
<PARAM NAME="ForeColor" VALUE="#00FF00"> 
<PARAM NAME="BackColor" VALUE="#DDAADD"> 
<PARAM NAME="FontName" VALUE="Times"> 
<PARAM NAME="FontSize" VALUE="12"> 
<PARAM NAME="FontItalic" VALUE="0"> 
<PARAM NAME="FontBold" VALUE="0"> 
<PARAM NAME="FontUnderline" VALUE="0"> 
<PARAM NAME="FontStrikeout" VALUE="0"> 
<PARAM NAME="TopPoints" VALUE="0"> 
<PARAM NAME="BotPoints" VALUE="0"> 
</OBJECT></CENTER><BR><BR><CENTER> 
<INPUT TYPE="button" value="click ME to change" 
onclick="changes" Language="VBScript"></CENTER> 
<SCRIPT> 
sub changes 
MyLabel.Caption="See. . . I TOLD YOU!" 
MyLabel.ForeColor = "6316128" 
MyLabel.BackColor = "167111680" 
MyLabel.FontName = "Arial" 
end sub 
sub MyLabel_Click 
MyLabel.Caption="Watch me change!!" 
MyLabel.ForeColor = "65280" 
MyLabel.BackColor = "14527197" 
MyLabel.FontName = "Times" 
end sub 
</SCRIPT> 
</BODY> 
</HTML>

В этом примере, помимо объекта Label, добавлены некоторые возможности сценария и несколько событий. Во-первых, определяется элемент управления Label, затем с помощью тега <INPUT> добавляется элемент управления Button. Когда пользователь нажимает на кнопку, то текст Label изменяется. При повторном нажатии кнопки возвращается прежний текст. Оба эти действия являются событиями. Когда пользователь нажимает на кнопку, возникает событие, заставляющее метку изменяться. Атрибут OnClick в теге <INPUT> используется для того, чтобы вызвать событие. Сам по себе атрибут OnClick является событием, и его значение вызывает процедуру VBScript, которая заставляет метку изменяться. Прежний текст возвращается с помощью сценария, имеющего две процедуры. Первая используется элементом Button (кнопка), а вторая - Label (метка), если пришло время вернуть ее старое содержание. Как вы заметили, во второй процедуре имя объекта Label (MyLabel) сопровождается подчеркиванием, после которого стоит имя события (MyLabel_Click). Это означает, что когда происходит событие OnClick для названного объекта, то должны выполняться последовательности операций, перечисленные в этой процедуре.

При интенсивном программировании лучше всего использовать программу Microsoft ActiveX Control Pad, великолепно выполняющую связывание команд Visual Basic с разными событиями и элементами управления на вашей страничке. Таким образом, вы можете больше внимания обращать на сам процесс разработки приложения.

Установка свойств для элементов управления и объектов

Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так:

<SCRIPT>
...
ObjectName.property = value
...
</SCRIPT>

Здесь ObjectName - имя вашего объекта, определенное с помощью параметров ID или NAME; property - свойство объекта, называемого ObjectName; value - присваиваемое свойству значение. Пример ниже иллюстрирует, как это делается:

...
MyLabel.Caption="Watch me change!"
MyLabel.ForeColor = "65280"
MyLabel.BackColor = "14527197"
MyLabel.FontName = "Times"
...

Свойству Caption (заголовок) присваивается строка "Watch me change!". Затем устанавливаются свойства ForeColor (цвет текста), BackColor (цвет фона) и FontName (стиль шрифта). Так можно устанавливать свойства для любого объекта на странице.

Обработка событий

VBScript - событийно-ориентированный язык. Некоторые события, перечисленные в табл. 3, работают со многими элементами управления. Существует несколько методов определения того, что должно происходить в сценарии при возникновении события. Можно определить событиеСобытие— то, что имеет место, происходит, наступает в произвольной точке пространства-времени; значительное происшествие, явление или иная деятельность как факт общественной или личной жизни; подмножество исходов эксперимента. как параметр тега для объекта на странице. Значением этого атрибута должно быть имя процедуры, которую нужно заранее определить внутри тега. Если надо использовать определенную процедуру, то параметр LANGUAGE тега <SCRIPT> (см. табл. 4) должен быть включен в этот тэг как дополнительный атрибут.

Таблица 3.
Некоторые события разных объектов в VBScript.

Событие Назначение
OnClick Пользователь щелкнул мышкой на элементе управления
MouseOver Пользователь помещает курсор мыши над объектом
DblClick Пользователь дважды щелкнул мышкой на соответствующем объекте
OnLoad Происходит при загрузке документа или другого элемента управления

Таблица 4.
Дополнительные атрибуты тега <SCRIPT>.

Атрибут Назначение
EVENT Декларирует событие (для объекта или элемента управления, определенного с помощью FOR), используемое для вызова кода, вставленного между парой тэгов <SCRIPT>
FOR Определяет, для какого объекта или элемента управления на странице должен использоваться скрипт, если происходит событие, указанное в атрибуте EVENT
LANGUAGE Назначает используемый скриптовый язык. Значением может быть либо "VBScript" для VBScript, либо "JavaScript" для JavaScript
EventName ПсевдонимПсевдоним (греч. — «ложный» и греч. — «имя»)— имя (антропоним), используемое человеком в той или иной публичной деятельности вместо настоящего (данного при рождении, зафиксированного в официальных документах). В западной культуре псевдонимами чаще всего пользуются деятели литературы и искусства. В восточных культурах (особенно китайской и японской) принятие нового имени при изменении социального статуса в некоторые эпохи было практически обязательным для любой сферы деятельности; аналогом такого рода обязательных псевдонимов в западной культуре можно считать обязательную перемену имени у священников и монахов, особенно в Православной церкви, однако называть церковные имена священнослужителей псевдонимами не принято. С распространением Интернета использование псевдонимов стало как никогда актуально: практически каждый пользователь Сети имеет псевдоним, который принято называть ником. события. Любое событие для определенного элемента управления может использоваться как атрибут одного из четырех тегов: <BODY>, <INPUT>, <OBJECT> и <A>. Значением для этого события всегда является процедура (и в VBScript, и в JavaScript). Некоторые названия событий, которые могут использоваться как атрибуты, перечислены в табл. 3. Этот метод не может работать с некоторыми элементами ActiveX

Типовая схема описания обработчика события следующая: <...EventName="method" LANGUAGE="VBScript"...>, где EventName - любое правильное событие для соответствующего объекта, а method - это имя процедуры, которая вызывается при возникновении какого-то определенного события. Используя атрибуты, описанные в табл. 4, вы можете определить в теге <SCRIPT>, какое произошло событие и для какого объекта должен использоваться следующий код, что необходимо сделать, если в программе несколько процедур. Это выглядит примерно так:

<SCRIPT LANGUAGE="VBSCRIPT" FOR="ObjectName" EVENT="EventName"> 
... 
</SCRIPT>

FOR определяет имя элемента управления или объекта, для которого используется последующий код; EVENT задает событие, при возникновении которого следующий код будет вызван.

Определение обработчика события через процедуру - самый простой способ выполнения некоторого кода, когда обрабатываемое событие имело место. Этот метод использует процедуру с таким же именем, как у элемента управления, который вы предполагаете использовать, плюс подчеркивание между именами объекта и события:

<SCRIPT LANGUAGE="VBScript"> 
... 
sub ObjectName_ObjectEvent 
... 
end sub 
... 
</SCRIPT>

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

... 
<INPUT TYPE="button" value="click ME to change" 
onclick="changes" Language="VBScript"></CENTER> 
<SCRIPT> 
sub changes 
MyLabel.Caption="See. . . I TOLD YOU!" 
MyLabel.ForeColor = "6316128" 
MyLabel.BackColor = "167111680" 
MyLabel.FontName = "Arial" 
end sub 
...
... 
sub MyLabel_Click 
MyLabel.Caption="Watch me change!" 
MyLabel.ForeColor = "65280" 
MyLabel.BackColor = "14527197" 
MyLabel.FontName = "Times" 
end sub 
...

Вызов методов

Чтобы вызвать подпрограмму из вашего сценария, используйте следующий синтаксисСинтаксис (от др.-греч. — «построение, порядок, составление»)— раздел лингвистики, изучающий строение предложений и словосочетаний.:

call ProcedureName(arguments)

ProcedureName - это имя подпрограммы, которую вы вызываете; arguments - значения, передающиеся в процедуру. Как было сказано ранее, подпрограммы используются, когда требуется обработать какое-то событие, например:

<SCRIPT> 
... 
sub MyObject_Click() 
alert "This is a subroutine which is called _ 
when the Click event happens for the MyObject object." 
end sub 
... 
</SCRIPT>

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

<SCRIPT> 
... 
y = 2 
x = GiveValue(y) 
alert x 
... 
function GiveValue(a) 
GiveValue = a + 4 
end function 
... 
</SCRIPT>

Следующий пример иллюстрирует вызовы подпрограммы и функции из сценария:

<HTML> 
<HEAD> 
<TITLE>Документ HTML, использующий элементы управления ActiveX и процедуры </TITLE> 
</HEAD> 
<BODY BGCOLOR="mistyrose"> 
<OBJECT ID="IeLabel1" WIDTH=170 HEIGHT=93 
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"> 
<PARAM NAME="_ExtentX" VALUE="3625"> 
<PARAM NAME="_ExtentY" VALUE="2461"> 
<PARAM NAME="Caption" VALUE="Click Me"> 
<PARAM NAME="Angle" VALUE="0"> 
<PARAM NAME="Alignment" VALUE="4"> 
<PARAM NAME="Mode" VALUE="1"> 
<PARAM NAME="FillStyle" VALUE="0"> 
<PARAM NAME="FillStyle" VALUE="1"> 
<PARAM NAME="ForeColor" VALUE="#FF0000"> 
<PARAM NAME="BackColor" VALUE="#373737"> 
<PARAM NAME="BackStyle" VALUE="1"> 
<PARAM NAME="FontName" VALUE="Courier"> 
<PARAM NAME="FontSize" VALUE="24"> 
<PARAM NAME="FontItalic" VALUE="0"> 
<PARAM NAME="FontBold" VALUE="0"> 
<PARAM NAME="FontUnderline" VALUE="0"> 
<PARAM NAME="FontStrikeout" VALUE="0"> 
<PARAM NAME="TopPoints" VALUE="0"> 
<PARAM NAME="BotPoints" VALUE="0"> 
</OBJECT><BR CLEAR="ALL"> 
<INPUT TYPE="button" NAME="button1" VALUE="Get Value"> 
Enter Angle: 
<INPUT TYPE="text" NAME="AngleInpt" VALUE="0" SIZE="10"
MAXLENGTH="10"> 
The Sine is: 
<INPUT TYPE="text" NAME="SineInpt" VALUE="0" SIZE="10" MAXLENGTH="10">
<SCRIPT LANGUAGE="VBScript"> 
dim pi 
pi = 4 * atn(1.0) 
sub button1_OnClick 
dim angle, sinangle 
angle = AngleInpt.value 
sinangle = getsin(angle) 
SineInpt.value = sinangle 
end sub 
function getsin(angle) 
getsin = sin((pi * angle)/180) 
end function 
sub ieLabel1_Click 
call ieLabel1.AboutBox 
end sub 
</SCRIPT> 
</BODY> 
</HTML>

Когда пользователь щелкает мышью по метке Label, то вызывается метод About Box. Поля ввода используются для вычисления синуса заданного угла (в градусах). Если ввести некоторое значение в первое поле ввода, помеченное текстом "Enter Angle", и щелкнуть на кнопке мышью, то введенный аргумент будет переведен в радианы и затем вычислен синус, результат чего будет отображен. Первая процедура вызывается по нажатию мышью на единственный«Противостояние» (англ.The One) — фантастический боевик 2001 года от Revolution Studios. В главных ролях Джет Ли и Карла Гугино. объект на странице - кнопку, называемую button1. Когда это событие обрабатывается, то вызывается сразу несколько методов. Сначала обновляются все переменные, которые вы собираетесь использовать для вашей программы. Затем отыскивается значение, называемое AngleInpt, которое пользователь набрал в поле ввода. Далее вызывается функция, в которую заносится введенный параметр из поля AngleInpt. Она преобразует угловые градусы в радианыРадиан (обозначение: рад, rad; от лат.radius— луч, радиус)— основная единица измерения плоских углов в современной математике и физике. Радиан определяется как угловая величина дуги, длина которой равна её радиусу. Таким образом, величина полного угла равна 2 радиан., затем вычисляет его синус (радианы являются основной мерой измерения углов для тригонометрических функций в VBScript). Значение связывается с именем функции (getsin), которая возвращает его для определенной нами ранее переменной. В итоге это значение отображается в текстовом поле, называемом SineInpt.

В данном примере задействовано два метода: подпрограмма button1_OnClick, которая, если вы помните, вызывается, когда пользовательПользователь— лицо или организация, которое использует действующую систему для выполнения конкретной функции. щелкает мышью по кнопке, и функция getsin(angle), где angle - параметр, используемый для преобразования градусов в радианы. У элемента ActiveX Label используются два включаемых метода (методами называются собственные подпрограммы и функции объекта): тот, который вызывается, когда по метке щелкнули мышкой (ieLabel1_Click), и метод отображения диалоговой панели ieLabel.AboutBox(). Когда обращаются к методам объектов, обычно используют следующий синтаксис:

call ObjectName.MethodName()

Ключевое слово call применяется для вызова определенного метода. ObjectName - это имя объекта, для которого вы хотели бы вызвать метод, а MethodName() - это имя метода, который будет использовать сам объект. Имя объекта и вызываемый метод отделяются точкой. Также для вызова метода не требуется никаких скобок, потому что у него нет никаких параметров.

Объектная модельМодель (фр.modle, от лат.modulus— «мера, аналог, образец»)— некоторый материальный или мысленно представляемый объект или явление, являющийся упрощённой версией моделируемого объекта или явления (прототипа) и в достаточной степени повторяющий свойства, существенные для целей конкретного моделирования(опуская несущественные свойства, в которых он может отличаться от прототипа). Internet Explorer 3.0

Все объекты являются дочерними от объекта Window. Объект Window содержит несколько методов, свойств и событий. Некоторые из них перечислены в табл. 1 - 3. Объект Window является исходным объектом, так что вам не требуется добавлять его имя к свойствам или дочерним объектам. Например, вместо window.name вы могли бы использовать только name.

Таблица 1.
Свойства объекта Window.

Свойство Назначение
Frames Используется, когда в текущем документе существует набор кадров (фреймов). Это свойство является массивом фреймов на странице
Location Определяет местоположение текущего окна
Name Имя того окна, чьи свойства определяются
Parent Указывает родительский фрейм или окно, чьи свойства определяются на данный момент

Таблица 2.
Несколько основных методов объекта Window.

Метод Назначение
Open Открывает или закрывает документ внутри текущего окна или другого определенного окна. У него есть два аргумента: имя файла, который вы хотите открыть, и имя окна, на котором вы хотите его разместить. Например, window.open(filename,windowname), где filename - имя файла, а windowname - имя окна. Для этого метода требуются оба параметра
Prompt Определяет всплывающую подсказку. Имеет два параметра: текст подсказки и любой заданный по умолчанию текст, который входит в подсказку. Например: window.prompt(ExpString, DftString), где ExpString - текст подсказки, а DftString - исходный текст в подсказке. Оба параметра необязательны. Если этот метод связан с переменной (как x=prompt("stuff","more stuff")), то эта переменная получит любые данные, которые были введены в подсказку, если не была нажата "отмена"
Close Используется для закрытия окна
Navigate Переключает окно на другой адрес URL. Например: window.navigate(URL), где URL - имя того URL, на который нужно перейти

Таблица 3.
События загрузки объекта Window.

Событие Назначение
OnLoad Вызывается, когда загружается страница, содержащая данное событие. Используется в тэге <BODY> как атрибут при вызове процедуры
OnUnLoad Вызывается, когда выгружается страница, содержащая данное событие. Используется в тэге <BODY> как атрибут при вызове процедуры

Объект Document

Объект Document имеет дело прежде всего с телом HTML-страницы. Он имеет три дочерних объекта: Link, Anchor и Form, каждый из которых является индексированным массивом объектов link, anchor и form. Кроме того, объект Form содержит подобъект ElementХонда Элемент (англ.Honda Element) - компактный вседорожник класса SUV собираемый компанией Honda на заводе в Ист Либерти, штат Огайо (East Liberty, Ohio), США. Официальные продажи начались в 2003 году в США, Канаде и Японии. Элемент построен на базе Honda CR-V, но в совершенно иной, кубоподобной концепции дизайна кузова. Он короче на 300 мм, колесная база сокращена на 43 мм, выше на 198 мм и колея передних колёс уже на 43 мм., который является индексированным массивом всех объектов и элементов управления на странице. Некоторые важные свойстваСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона. и методы перечислены в табл. 4. Для Document, заметим, не существует никаких событий.

Таблица 4.
Некоторые методы объекта Document.

Метод Назначение
BgColor Устанавливает цвет фона текущего документа. Этот цвет может иметь шестнадцатеричное представление #rrggbb или соответствующее название
FgColor Устанавливает цвет текста документа. Аналогичен по функциям свойству BgColor
Referrer Указывает URL документа, на который ссылается пользователь в настоящее время. Например, если кто-то обратился по адресу: http://www.nm.org/welcome.htm с сервера http://www.someplace.com, то свойством Referrer будет: http://www.someplace.com, если это свойство было в странице вышеупомянутого расположения; в противном случае оно обращается в Null
LastModified Показывает дату последней модификации документа
Open Открывает документ для записи дополнительных строк в формате HTML. СинтаксисСинтаксис (от др.-греч. — «построение, порядок, составление»)— раздел лингвистики, изучающий строение предложений и словосочетаний.: document.open()
Write Записывает HTML-текст в текущий документ и должен вызываться, когда документ открывается для записи. Синтаксис: document.write(somestring), где somestring может быть одной строкой, переменной или же несколькими связанными строками в формате HTML, которые выводятся на экран
Close Закрывает документ после того, как имели место следующие вызовы: document.write, document.close.

Объект Frame

Объект Frame - это индексированный массивИндексный массив (в некоторых языках программирования также таблица, ряд)— именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (в отличие от списка). из фреймов (кадров) на странице. Первый кадр из списка соответствует кадру в верхнем левом углу браузера. Вы можете использовать данный объект для установки или получения различных URL-адресов разных фреймов, которые находятся на экране браузера. Фреймовый массив очень похож на объект Window, поскольку он использует другие объекты похожим способом. Например, вы можете использовать расположениеДиспозиция (лат.dispositio «расположение»)— термин, применявшийся в средневековых поэтиках в значении «традиционной композиции» (ср. Faral, Les arts potiques des XII et XIII sicles, 1923), введённый в новейшее литературоведение немецкой «риторической» школой (О. Шиссель фон Флешенберг) и усвоенный некоторыми русскими формалистами (М.А.Петровский). объекта для получения или установки расположения соответствующего фрейма.

Объект History

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

Таблица 5.
Некоторые методы объекта History.

Метод Назначение
Go Используется для того, чтобы определить, сколько раз браузер должен пролистать вперед историю введенных адресов. Формат вызова: history.go(n), где n - номер файла истории, на который нужно перейти
Forward Используется для определения того, сколько раз браузер должен пролистать вперед историю введенных адресов. Формат вызова: history.forward(n), где n - число раз, которые нужно "идти вперед"
Back Используется, чтобы определить, сколько раз браузер должен "идти назад" по текущей истории вашего браузера. Формат вызова: history.back(n), где n - число раз, которое браузер должен "идти назад"

Объект Location

Этот объект необходим для получения информации относительно текущего расположения Internet Explorer. Наиболее важные свойства перечислены в табл. 6. Этот объект не имеет никаких событий или методов.

Таблица 6.
Наиболее важные свойства объекта Location.

Свойство Назначение
Href Используется для получения URL текущего окна или для создания нового URL
Protocol Устанавливает тип протокола (FTP или HTTP) текущего документа
Host Используется для установки главной части URL текущего документа вместе с номером используемого порта
Hostname Используется для установки имени хоста в URL

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

Мы рекомендуем еще посмотреть:

Мероприятия компанииЮридическое лицо— созданная и зарегистрированная в установленном законом порядке организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде. Юридические лица должны иметь самостоятельный баланс или смету..
 за 

  МероприятиеДата проведенияНаправление
  Акции
 Каждый сам кузнец своих кадровC 11 августа по 10 октября 2008 г.Оборудование Cisco
  Семинары
 Выездной семинар по оборудованию Avaya, в рамках партнерской программы "Работаем вместе!"C 27 по 28 августа 2008 г.Avaya Definity

    Выездной семинар, организуемый в рамках партнерской программы "Работаем вместе!", будет проведен в санатории "Алатау".
   Cеминар пройдет в формате двухдневного обучения.
    Курс предназначается специалистам по продажам, руководителям коммуникационных проектов, инженерам предпродажной поддержки.

  Учебные курсы
 QoS 2.2C 04 по 08 августа 2008 г.Оборудование Cisco
Курс дает углубленные знания о требованиях, предъявляемых к качеству обслуживания в сетях IP, концептуальных моделях использования DiffServ, IntServ и Best Effort и применению IP QoS в коммутируемых и маршрутизируемых сетях с применением Cisco IOS. Программа курса охватывает теорию IP QoS, вопросы проектирования, настройку различных механизмов QoS, позволяющую создать эффективную политику администрирования с применением QoS.
 Definity Advanced Administration and TroubleshootingC 04 по 08 августа 2008 г.Avaya Definity
Курс предназначен для инженеров, занимающихся установкой и сопровождением АТС Definity. Курс является продолжением базового курса Администрирование АТС Definity и имеет направленность на построение сложных конфигураций и рассмотрение различных способов разрешения проблем.
 MPLS 2.2C 04 по 08 августа 2008 г.Оборудование Cisco
Курс предоставляет основополагающие сведения по функциям Traffic Engineering, Fast Reroute и Any Transport over MPLS (AToM). Большая часть курса посвящена применению VPN в сетях MPLS с точки зрения компаний-операторов и провайдеров услуг, а также настройке перечисленных функций в существующих сетях.
 BSCI 3.0C 04 по 08 августа 2008 г.Оборудование Cisco
Изучаются применение расширенных возможностей IP адресации и протоколов динамической маршрутизации на примере сложной сети предприятия.
 BCMSN 3.0C 11 по 15 августа 2008 г.Оборудование Cisco
Этот курс дает знания, необходимые для создания эффективных расширяемых коммутируемых сетей предприятия с применением таких технологий как VoIP и Wireless LAN.
 GWGK 2.0C 25 по 29 августа 2008 г.Оборудование Cisco
Курс предназначен для специалистов, работающих в области IP телефонии, и дает необходимую специальную подготовку для работы с голосовыми шлюзами (gateways) и гейткиперами (gatekeepers) как на уровне корпоративных сетей, так и в среде поставщиков услуг, с использованием технологии VoIP.

Авторизация
Логин
Пароль
Регистрация >
  Мероприятия « 2008 »   
« август » 
Пн   4111825
Вт   5121926
Ср   6132027
Чт   7142128
Пт  18152229
Сб  29162330
Вс  310172431
Ближайший учебный курс ND 3321 СКС SYSTIMAX пройдёт c 18 по 21 августа 2009 г.
Подать заявку
2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование