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

       

События элемента


WebBrowser и объекта InternetExplorer

События элемента управления WebBrowser и объекта InternetExplorer вызываются тогда, когда пользователь перемещается к другому URL с помощью кнопок нави­гации Internet Explorer или методов передвижения элемента управления WebBrowser. Они контролируют процесс каждой загрузки и позволяют приложе­нию узнать, когда загрузка страницы завершена.

BeforeNavigate2 (Перед перемещением).

Генерируется, когда WebBrowser соби­рается переместиться к другому LJRL. Это может быть вызвано внешней (вызов метода Navigate) или внутренней автоматизацией из сценария или когда пользователь щелкает на гиперссылке в текущем документе. Можно отменить передвижение в приложении, установив значение параметра Cancel метода в True.

Совет

Событие BeforeNavigate2 не срабатывает, если гиперссылка недопустима. Элемент управления, прежде всего, устанавливает контакт с Web-сервером, а затем перемещается к документу.

Метод BeforeNavigate2 имеет следующее объявление.

Private Sub WebBrowserI BeforeNavigate2(ByVal pDisp As Object, _

URL As Variant, Flags As Variant,

TargetFrameName As Variant, PostData As Variant, _

Headers As Variant, Cancel As Boolean)

Первый параметр — pDisp — представляет объект, на котором документ воспро­изводится. Обычно этот объект - WebBrowser. Этот параметр можно использовать, чтобы обратиться к свойствам элементам управления. Его имя — PDisp.Name, pDisp Width и pDisp. Height — размеры элемента управления и т.д.

Параметр URL — это адресат URL (определенный методом Navigate или гипер-ссылкой), Flags - зарезервированный параметр. Параметр TargetFrameName — имя фрейма, в котором воспроизводится документ или значение NULL, если документ не должен отобразиться ни в каком фрейме. Параметры PostData и Header подобны соответствующим параметрам метода Navigate.



Приложение может устанавливать параметр Cancel (обратите внимание: он передается по ссылке) для отмены перемещения. Если установить этот параметр в True, то перемещение не будет даже начато. Для остановки уже начатого переме­щения используется метод Stop.


NavigateComplete (Перемещение завершено). Генерируется после того, как элемент управления успешно переместился к новому положению. Некоторые ресурсы документа все еще могут загружаться (загрузка большого изображения продолжительна), но часть документа загружена с сервера и выполнение началось. Для прерывания этого процесса вызывается метод Stop.
Событие NavigateComplete объявляется следующим образом.
Sub WebBrowserl_NavigateComplete(ByVal URL As String)
Параметр
URL — это URL загружаемого документа.
DownloadBegin (Начало загрузки). Генерируется, когда стартует операция передвижения. Это событие инициируется после того, как сгенерировано событие BeforeNavigate (если передвижение не было отменено), которое сообщает прилйжению, что необходимо отобразить сообщение о занятости программы или изменить форму указателя мыши.
Событие DownloadBegin объявляется следующим образом.
Sub WebBrowserl_DownloadBegin()
DownloadComplete (Загрузка закончена). Генерируется, когда операция пере­движения закончена, остановлена или завершена неудачно. В отличие от события NavigateComplete, которое не инициируется в случае неудачи, это событие всегда инициируется после начала передвижения. Любая индикация о занятости при­ложения управляется из обработчика этого события. Событие DownloadComplete объявляется следующим образом.
Sub WebBrowserl_DownloadComplete()
ProgressChange (Состояние процесса загрузки). WebBrowser прослеживает развитие операции загрузки и периодически выдает событие ProgressChange, чтобы сообщить приложению о степени загрузки. Событие ProgressChange объявляется следующим образом.
Sub WebBrowserl_ProgressChange(ByVal Progress As Long, _
ByVal ProgressMax As Long)
Оба параметра являются длинными целыми числами. Параметр Progress — количество уже загруженных данных, a ProgressMax — общее количество данных, которые будут загружены.
Совет
Процент загруженных данных — это отношение Progress ProgressMax.
Необходимо всегда проверять значение ProgressMax, потому что его значение может быть нулевым (если элемент управления не знает общего объема данных, которые будут загружены). Более того, событие ProgressChange вызывается для каждого из ресурсов документа, и не существует способа узнать заранее полный размер элементов управления, которые загружаются. Отметим: InternetExplorer воспроизводит прогресс загрузки каждого элемента управления, а не всего документа.


TitleChange (Изменение заголовка). Генерируется, когда заголовок текущего документа изменяется. Заголовок HTML-документа может изменяться: когда документ загружается, его заголовком является URL. После того, как реальный заголовок (если он определен с помощью метки TITLE) проанализирован, вызывается событие TitleChange. Его можно использовать для модификации свойства Caption на форме Visual Basic. Событие TitleChange объявляется следующим образом.
Sub WebBrowserl_TitleChange(ByVal Text As String)
Параметр
Text - это строка, которая появляется в строке заголовка InternetExplorer.
NewWindow (Новое окно).
Хотя результат большинства гиперссылок воспроиз­водится в том же окне, что и содержащий их документ, некоторые гиперссылки требуют открытия нового окна для отображения документа. Событие NewWindow вызывается непосредственно перед созданием нового окна.
Это событие можно вызвать, если удерживать нажатой клавишу SHIFT и щелкнуть кнопкой мыши на гиперссылке или выбрать команду Open в меню New Window контекстного меню. Событие NewWindow позволяет приложению отменить создание нового окна. Когда это событие используется с InternetExplorer, то новое окно является еще одним экземпляром InternetExplorer.
Когда событие NewWindow используется при работе с элементом управления WebBrowser, то приложение должно создать новый элемент управления WebBrowser и показать в нем документ или потребовать, чтобы новый документ отображался в том же окне. Если приложение создает новый элемент управления WebBrowser, то необходимо передать все параметры из события NewWindow непо­средственно методу Navigate последнего созданного элемента управления WebBrowser. При отображении нового документа на том же элементе управления необходимо опять-таки передать параметры этого события в метод Navigate существующего окна.
Событие NewWindow объявляется следующим образом.
Sub WebBrowser_NewWindow (ByVal uri As String, _
ByVal Flags As Long, ByVal TargetFrameName As String, _
PostData As Variant, ByVal Headers As String, _
Processed As Boolean)
Параметры события NewWindow идентичны параметрам метода Navigate, кроме последнего, принимающего значения True или False и указывающего, создаст прило­жение новое окно (True) или нет (False).
FrameBeforeNavigate, FrameNavigateComplete, FrameNewWindow. Эти события идентичны событиям BeforeNavigate, NavigateComplete и NewWindow, но вызываются из фреймов.

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