
- •Переменные, массивы и константы
- •Примечание
- •Примечание
- •Операторы условия и цикла
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Примечание
- •Процедуры
- •VbScript предусматривает создание двух типов процедур:
- •Объектная модель и взаимодействие с элементами документа
- •Функции и объекты ядра vbScript
- •InputBox(подсказка, заголовок, умалч_знач, х, у)
- •Примечание
- •Примечание
- •Примечание
- •Примечание
InputBox(подсказка, заголовок, умалч_знач, х, у)
Строковые параметры подсказка и заголовок задают соответственно подсказку для пользователя и заголовок диалогового окна. Параметр умалч_знач определяет значение, выводимое в поле ввода при отображении окна. Необязательные два последних параметра задают в твипах (1 твип = 1/1440 дюйма = = 1/20 пойнта) координаты левого верхнего угла диалогового окна относительно левого верхнего угла окна браузера.
Эта функция возвращает значение строки, введенной пользователем, или заданное умалчиваемое значение при нажатии кнопки ОК. При нажатии кнопки Cancel возвращаемое функцией значение равно Empty. На рис. 9.14 показано диалоговое окно, отображаемое оператором:
IC = InputBox("Введите Ваш регистрационный номер.", "Регистрация", "")
Рис. 9.14. Диалоговое окно, отображаемое функцией InputBox
С помощью функции MsgBox можно не только просто информировать пользователя о возникших проблемах, но и предоставить ему возможность разрешить ее некоторыми стандартными способами. Например, если не удается из сценария связаться с каким-нибудь сервером, пользователь может отказаться от этого действия, повторить его или отменить. Подобное взаимодействие осуществляется отображением диалоговых окон разных типов, задаваемых значением соответствующего параметра функции MsgBox. Синтаксис вызова этой функции следующий:
IC=MsgBox(строка_сообщения, тип_окна, заголовок_окна)
Параметр строка_сообщения задает строку сообщения, отображаемую в диалоговом окне, параметр заголовок_окна определяет надпись в заголовке окна, а параметр тип_окна задает тип отображаемого окна. Он является целым числом и его значение определяется как сумма трех целочисленных подпараметров, задающих элементы диалогового окна. Эти подпараметры определяют количество и типы кнопок, тип значка и умалчиваемую кнопку, отображаемые в диалоговом окне. Значения этих параметров представлены в табл. 9.12.
Таблица 9.12. Значения подпараметров вида диалогового окна
Типы кнопок |
|
Значение |
Результат |
0 |
Отображается одна кнопка ОК |
1 |
Отображаются кнопки ОК и Cancel (Отмена) |
2 |
Отображаются кнопки Abort (Стоп), Retry (Повтор) и Ignore (Пропустить) |
3 |
Отображаются кнопки Yes (Да), No (Нет) и Cancel |
4 |
Отображаются кнопки Yes и No |
5 |
Отображаются кнопки Retry (Повтор) и Cancel |
Типы значков |
|
Значение |
Результат |
0 |
Никакой значок не отображается |
16 |
Отображается значок Стоп |
32 |
Отображается значок Вопрос |
48 |
Отображается значок Восклицание |
64 |
Отображается значок Информация |
Умалчиваемая кнопка |
|
Значение |
Результат |
0 |
Первая кнопка |
256 |
Вторая кнопка |
512 |
Третья кнопка |
Примечание
Надписи на кнопках отображаются в зависимости от используемой операционной системы. В таблице в скобках после английского названия кнопок указано их название при работе в русской версии Windows 95.
Если необходимо отобразить диалоговое окно с тремя кнопками Yes, No и Cancel (значение подпараметра равно 3), со значком Восклицание (значение подпараметра равно 48) и третьей кнопкой (Cancel) по умолчанию (значение подпараметра равно 512), то необходимо при вызове функции MsgBox в качестве значения параметра тип_окна указать 563 (3+48+512), как показано в следующем примере:
MsgBox "Вы действительно хотите завершить процесс?", 563,"Сообщение"
Результат выполнения этого оператора можно увидеть на рис. 9.15.
Рис. 9.15. Диалоговое окно, отображаемое функцией MsgBox
Функция MsgBox возвращает целочисленное значение, по которому можно определить, какая кнопка была нажата, и предпринять необходимые действия. Коды возврата функции показаны в табл. 9.13.
Таблица 9.13. Коды возврата функции MsgBox
Возвращаемое значение |
Нажата кнопка |
1 |
ОК |
2 |
Cancel (Отмена) |
3 |
Abort (Стоп) |
4 |
Retry (Повтор) |
5 |
Ignore (Пропустить) |
6 |
Yes (Да) |
7 |
No (Нет) |
VBScript предоставляет ряд объектов, не связанных с объектной моделью HTML-страницы и предназначенных для сценариев, выполняющихся на сервере. Это объекты для работы с файловой системой: дисками, папками и файлами. Свойства и методы этих объектов позволяют получать информацию о файлах, расположенных на компьютере, на котором выполняется сценарий. Потенциально их можно включать в сценарии HTML-страниц, но вероятность их выполнения мала, так как при попытке использования подобных объектов браузер отображает предупреждающее сообщение (рис. 9.16), и пользователь может отказаться от дальнейшего выполнения сценария.
Рис. 9.16. Сообщение браузера при использовании в сценарии объектов доступа к файлам
Здесь дадим краткое описание использования подобных объектов на примере объектов FileSystemObjects (Объекты файловой системы), так как с их помощью можно быстро решить какие-то свои домашние задачи, не обращаясь к "серьезным" системам программирования.
Прежде чем использовать методы и свойства любого объекта VBScript, его необходимо создать. Это достигается использованием оператора set совместно С функцией CreateObj ect:
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Сначала описывается переменная fso, в которой будет храниться ссылка на объект файловой системы, а затем в операторе set создается сам объект, и в переменную заносится ссылка на него. Теперь можно использовать все методы и свойства созданного объекта, применяя обычную точечную нотацию объектно-ориентированных технологий. Например, в следующем фрагменте кода создается объект Textstream, метод WriteLine которого записывает строку текста в файл:
Set MyFile = fso.CreateTextFile("a:\testfile.txt", True)
MyFile.WriteLine("Проверка записи в файл из VBScript.")
MyFile.Close
Если выполнить приведенные два фрагмента кода в одном сценарии, то на дискете будет создан новый файл, содержащий одну текстовую строку.
Примечание
Создание нового объекта всегда осуществляется с помощью оператора Set. т После знака равенства указывается конструктор объекта— функция, возвращающим значением которой является объект. Конструктор может иметь параметры.
Совет
Описание всех объектов VBScript можно найти на сервере фирмы Microsoft по адресу http://msdn.microsoft.com. С него же можно установить на свой компьютер документацию по языку сценариев VBScript.
Объекты MS Internet Explorer
Браузер MS Internet Explorer разработан с использованием технологии Automation. Приложение, созданное на основе этой технологии, раскрывает свои объекты другим приложениям, поддерживающим данную технологию. Эти приложения имеют доступ к методам и свойствам объектов другого приложения Automation. Иерархическая структура объектов Internet Explorer достаточна сложна, но для написания сценариев используется часть объектной модели, связанной с элементами HTML-страницы.
Во главе иерархии, как и в случае с Netscape Navigator, стоит объект window, представляющий окно браузера и порождающий все остальные объекты модели. При ссылке в программе на любой объект из иерархии можно не указывать "родительский" объект window.
Модель охватывает практически все элементы HTML-страницы. На рис. 9.17 показана иерархическая структура объектной модели, которая отражает подчиненность элементов страницы.
Рис. 9.17. Объектная модель MS Internet Explorer
Для каждого типа элементов в модели предусмотрены соответствующие наборы. Например, для объектов image, определяемых тэгами <IMG>, существует набор images. Ссылку на соответствующий объект можно определить с использованием имени объекта, задаваемого значением параметра NAME, или с помощью набора объектов, в данном случае images. В наборе объекты расположены в последовательности, в которой они задаются на HTML-странице.
Примечание
Наборы объектов, собственно говоря, являются свойствами порождающих их объектов. Имена наборов объектов задаются в виде множественного числа существительных (в английском языке добавляется буква "s" в конце слова), определяющих типы объектов.
Формы HTML, отображаемые в объектах Form, содержат разнообразные элементы управления, которые порождают соответствующие объекты, подчиненные объекту Form. Все, что сказано об этих объектах в разделе "Язык создания сценариев JavaScript", остается в силе и при работе с этими объектами с помощью языка VBScript.
Процедуры обработки событий
Как и в сценарии JavaScript, весь код VBScript должен располагаться в тэге-контейнере <SGRIPT>. . .</SCRIPT>. Для обратной совместимости с браузерами, не поддерживающими язык сценариев VBScript, следует размещать код внутри тега <SCRIPT> в контейнере-комментарии, как показано ниже:
<SCRIPT TYPE="text/vbscript" LANGUAGE="VBScript">
<!--
код сценария VBScript
'-->
</SCRIPT>
Завершающий тег комментария предваряется знаком ('), чтобы интерпретатор браузера не сгенерировал ошибку синтаксиса.
Предупреждение
Следует избегать появления в коде сценария последовательности символов (</), так как интерпретатор воспринимает ее как завершающий тег и может не обработать до конца сценарий. Если необходимо напечатать в документе последовательность указанных символов, в коде VBScript следует заменить знак / на его представление через десятичный код Chr (47)и использовать операцию конкатенации строк. Например, если необходимо при динамическом создании документа напечатать
Абзац</р>, то следует использовать метод Write объекта Document следующим образом:
Document.Write "
Абзац<" & Chr(47) & "р>"
Параметр LANGUAGE задает язык сценария. Параметр TYPE, определяющий MIME-тип заключенного в тег <SCRIPT> кода, задает также язык сценария. Для VBScript значение этого параметра должно быть строкой "text/vbscript". Этот параметр включен в HTML 4.0, но может не поддерживаться некоторыми браузерами, поэтому рекомендуется задавать оба параметра одновременно.