Visual Basic 6. Руководство разработчика


Свойства объекта


Wscript

Объект Wscript в дополнение к свойству Arguments имеет и другие свойства. Они относятся к программе, управляющей выполнением сценария (WSCRIPT.EXE) и, собственно, к исполняемому сценарию.

Application.

Возвращает синоним имени объекта Wscript - строку "Windows Scripting Host" (аналогичное значение возвращается свойством Name).

FullName.

Возвращает путь и имя программы, управляющей выполнением сценария (WSCRIPT.EXE).

Name. Возвращает синоним имени объекта Wscript — строку "Windows Scripting Host".

Path. Возвращает имя папки, в которой находится WSCRIPT.EXE или CSCRIPT.EXE (обычно c.\windows).

ScriptFullName.

Возвращает путь и имя сценария, выполняемого WSCRIPT.EXE.

Version. Возвращает версию WSCRIPT.EXE. Версия, поставляемая с Windows 98 - 5.0.

ScriptName.

Возвращает имя сценария, выполняемого WSCRIPT.EXE. Сценарий WSCRIPT.VBS демонстрирует некоторые из этих свойств. На рис. 20.9 показан результат его работы.



Программа 20.15. Сценарий WSCRIPT.VBS

msg = "Script File Name " & Wscript.ScriptName & vbCrLf

msg = msg & "Script Path Name   " & Wscript.ScriptFullName & vbCrLf

msg = msg & "Executed by   " & Wscript .Application & " (version " & _

Wscript.Version & ")" & vbCrLf

MsgBox msg

Рис. 20.9. Результат работы сценария WSCRIPT.VBS


Решение этой проблемы состоит в использовании свойства
Cookie (Заготовка) объекта Document - строки, которая может быть сохранена на клиентском компью­тере. Cookie совершенно безопасны, потому что это текстовые файлы, которые записываются на диск, читаются с диска броузером и располагаются в специальной папке. Это не исполняемые файлы (никакой угрозы для остальной части файловой системы они не представляют), и к ним можно обратиться только при помощи броузера. Свойство Cookie не может заменить файловый ввод-вывод, но позволяет сохранить фрагмент информации на клиентском компьютере, чтобы в следующий раз при исполнении сценария он смог найти там информацию.
Информация, сохраненная на клиентском компьютере посредством
Cookie, ограничена. Нельзя сохранять большие файлы с текстом или числами. Но можно сохранить информацию о настройках: имя пользователя и имена наиболее часто используемых страниц, чтобы (когда пользователь запросит ту же страницу) прочитать значения, сохраненные на клиентском компьютере в прошлый раз, и настроиться самостоятельно на пользователя.
Примечание
Наиболее общим применением Cookie является сохранение данных настройки.
Другая причина использования Cookie - предоставление нескольким страницам возможности совместного использования некоторой информации. Корзина поку­пателя - типичный тому пример. Сфера действия сценария, как известно, ограниче­на одной страницей. Если страница со сценарием загружает другую страницу, то первоначальный сценарий прекращает существование. Сценарий, загруженный с новой страницы, перехватывает управление. Некоторые узлы позволяют выбирать "товар для покупки" с различных страниц, сохраняя при этом ссылку на уже приобретенный товар, находящийся в покупательской корзине. Если каждая страница -отдельный объект, и страницы не могут совместно использовать информацию, то как это реализовать?
Ответ - свойство Cookie объекта Document. Когда страница передает некоторую информацию другим страницам, она может оставить свойство Cookie на клиентском компьютере. Страница, которая нуждается в информации, считывает ее. У пользова­теля создается впечатление, что различные страницы обмениваются информацией как формы приложения, аналогично формам в Visual Basic.


VB6 в действии: страница Cookie
Чтобы сохранить строку в системе клиентского компьютера и иметь доступ к ней из другой страницы или доступ при следующем открытии, используется свойство Cookie. Страница Cookie (рис. 21.8) является измененной страницей Pagel. На этот раз запрашивается имя пользователя, которое сохраняется в свойстве Cookie объекта Document. При следующем открытии страницы имя пользователя появляется автоматически.
Чтобы проверить страницу Cookie, необходимо установить Web-сервер. Открытие страницы Cookie с помощью Internet Explorer не дает результата. Страницы Cookie сохраняются на клиентском компьютере броузером, если они созданы сервером Можно использовать любой Web сервер, например Frontpage Web-сервер или Personal Web Server.

Рис. 21.8. Свойство Cookie объекта Document: настройка страниц
Совет
Personal Web Server является частью Frontpage и Internet Explorer 4. Также он доступен на Web-узле Microsoft (http://www.microsoft.com/sitebuilder).
Для проверки этого примера использовался Frontpage Web сервер (работающий как Personal Web Server). Для экспериментов со свойством Cookie выполните следующие действия.
1. Скопируйте файл Cookies.htm с компакт-диска в папку Cookie в корневом каталоге на сервере.
2. Переименуйте его в Index.htm.
3. Запустите Frontpage Web-сервер или любой другой сервер, установленный в системе (если он еще не загружен).
4. Запустите Internet Explorer и соединитесь с URL.
http://127.0.0.1/Cookie
Символы 127.0.0.1 — IP-адрес локального сервера, a Cookie — имя папки, в которую скопирован узел (содержащий одну страницу).
5. Когда появится запрос на ввод имени, сценарий отобразит его на странице и сохранит в свойстве Cookie объекта Document.
6. Соединитесь с другим URL, введя его в поле Address окна просмотра.
7. Щелкните на кнопке Back, чтобы возвратиться к странице Cookie. На этот раз не придется вводить имя. Оно уже хранится в свойстве Cookie.
Теперь рассмотрим сценарий страницы Cookies.htm.
Программа 21.8.


Документ
Cookies.htm
<HTML>
<HEAD>
<TITLE>Cookie Demo Page</TITLE>
<SCRIPT LANGUAGE="VBSCRIPT">
If Document.Cookie = " " Then
UserName = InputBox ("Please enter your name")
' (Введите, пожалуйста, ваше    имя)
document.cookie = UserName
Else
UserName = Document.Cookie
End If
Document.write "<Hl> Welcome to our Active Pages, " &
UserName & "</H1>"
' (Добро пожаловать на наши активные страницы)
Document.write "<BR>"
Document.write "This page was opened on " & date() & ",
at " & time ()
' (Эта страница была открыта)
Document.write "<BR>"
Document.write "The document's cookie is: " & Document.cookie
' (Свойство Cookie документа:)
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
If-структура сценария проверяет значение свойства Cookie. Если это свойстве не имеет значения, то запрашивается имя пользователя. Затем введенное пользователем имя сохраняется в свойстве Cookie.
Свойство Cookie имеет значение при следующем подключении к этой странице и выполняется структура Else, которая присваивает свойству Cookie значение переменной UserName. Остальная часть кода такая же, как на странице Pagel кроме последнего метода Write, который отображает текущее значение свойстве Cookie на странице.
Такое использование свойства Cookie не является привычным. Cookies обычно сохраняются в виде пар имен и значений, разделенных точкой с запятой. Более разумно присвоить Cookie следующее значение.
"UserName = Cibil; Age = 24; Browser = IE3.02"
Как видите, можно сохранять много значений переменных, но методы длх чтения значения одной переменной отсутствуют. Необходимо считывать век заготовку, а затем использовать функции работы со строками
(InStr(), Mid() и другие), чтобы изолировать каждую пару и извлечь имя переменной и ее значение.
Срок действия заготовок


Заготовки имеют дату окончания действия. Если не определить дату окончания (дата окончания действия не использовалась в примере
Cookie), то действие свойства Cookie оканчивается после завершения текущего сеанса. Чтобы запустить новый сеанс, необходимо выключить Web-сервер и запустить его снова. Закрытие и пере­запуск Internet Explorer не запускает новый сеанс.
Для задания даты окончания добавьте следующую строку в Cookie.
expires = Thu, 01 Jan 1998 12:00:00 GMT
Эта строка добавляется в Cookie следующим образом.
Document.cookie = UserName s & expires = Thu, 01 Jan 1998
12:00:00 GMT"
Заготовки с датами окончания хранятся на диске в виде текстовых файлов, которые можно просматривать обычным текстовым редактором. Заготовки для каждого Web-узла хранятся в папке Cookies папки Windows.
Anchor (Привязка). Anchor - свойство объекта Document. Подобно другим свойствам, оно является объектом. Свойство Length объекта Anchor
возвращает число привязок в документе. Индивидуальные привязки сохранены в массиве привязок, к которым, как к элементам массива, можно обратиться, используя индексы. Имя первой привязки в документе - Anchor(O) (это значение атрибута NAME тега <А>, который вставил привязку в документ), Anchor(l) - вторая привязка и т.д. Следующие операторы отображают число привязок в текущем документе в окне сообщения.
TotalAnchors = Document.Anchors.Length
MsgBox "The document contains "& TotalAnchors & "anchors"
' (Документ содержит... привязок)
Можно просмотреть все привязки в документе с помощью следующего цикла.
For i=0 to TotalAnchors-1
ThisAnchor = Document.Anchors(i)
{какие-либо операции с привязкой}
Next
Просматривать привязки текущего документа из раздела сценария того же документа не практично. Но можно открыть другой документ во фрейме и обратиться к привязкам фрейма через массив Frame(l). Document. Anchors. Еще один пример дан в примерах DocumentLinks этой главы.
link (Ссылка). Подобно свойству Anchor, но в отличие от него, задает гиперсвязи в текущем документе. Подобно массиву привязок, массив связей является свойством объекта Document и единственным объектом, содержащим связи. Основное свойство объекта Link - свойство Length, которое возвращает число связей в документе.


Каждая связь — это элемент массива Links. Первая связь — Links (0), вторая — Links (1) и т.д. В связи с тем, что гиперсвязи в документе - адресаты, свойства объекта Link идентичны свойствам объекта Location, но доступны только для чтения.
Чтобы получить число связей в документе, отображаемом в окне броузера, необходимо использовать следующее выражение.
Window.Document.Links.Length
Для просмотра гиперсвязи в документе и исследования ее адресатов используют цикл, подобный следующему.
For i = 0 to Window.Document.Links.Length - 1
{обработка гиперсвязи}
Next
При каждой итерации цикла текущая гиперсвязь задается следующим выражением.
Window.Document.Links(i).href.
lastModified (Дата модификации). Это свойство возвращает дату последнего изменения текущего документа. Можно использовать свойство lastModified объекта Document, чтобы отобразить дату и время последнего изменения. При этом нет необходимости изменять код непосредственно в документе.
Referrer (Указатель).
Это свойство возвращает URL ссылающегося документа.

Содержание раздела