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. Описанные в статье сценарии могут быть использованы в
браузере Microsoft Microsoft (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="LabelControl Ctrl (сокращение от 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 для вызова процедур, которые основаны на различных событиях, происходящих
с объектом. Надеемся, что это поможет вам в дальнейшей работе.
|