powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / WebBrowser: как понять, что какой-то элемент уже загрузился.
8 сообщений из 8, страница 1 из 1
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35426579
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую следующий алгоритм:
1/Загружаем стартовую страницу
Код: plaintext
WebBrowser1.Navigate "http://startpage.ru/"
2/Ждем пока она загрузится
Код: plaintext
1.
2.
3.
4.
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        If InStr(URL, "http://startpage.ru/") >  0  Then
...
        End If
End Sub
3/Знаем,предварительно изучив html этой страницы, что на ней точно есть форма Forms(2) с элементами скажем login и password,поэтому по окончании загрузки вводим туда значения и переходим на след.страницу, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        If InStr(URL, "http://startpage.ru/") >  0  Then
            Set frm = Form1.WebBrowser1.Document.Forms( 2 )
                frm.login.Value = ИМЯ
                frm.Password.Value = ПАРОЛЬ
                frm.submit
            Set frm = Nothing
        End If
End Sub

Все бы ничего,работает железно, но есть одно но: на странице кроме Form(2) присутствует куча не относящейся к делу информации, т.е. картинки, анимация и т.п. На загрузку этой белиберды уходит какое-то время, ведь пока вся эта хрень не загрузится, код не выполнится, т.е. форма Forms(2) уже давно загружена, а программа секунд несколько ждет.

Что пытался делать: отключить картинки и анимацию и т.д и т.п в IE. Процесс конечно ускоряется, но, как я уже понял в одном конкретном окне это сделать нельзя, а снимать галочки (понятно, что программно могу править реестр) влияет на работу всего IE глобально, т.е. вариант дурной, а другого способа нет.

Подумал вот о чем: а нельзя ли программно отследить конец загрузки какого-либо элемента (скажем той же form(2) или кнопки, галочки), чтобы указанный код перехода на след. страницу вставить в это событие, а не в событие конца загрузки страницы,т.е. загрузили нужное и не теряя времени идем дальше ?

Жалко не интернет-трафика, жалко времени , ибо вся работа программы основана на подобных фишках, а интегрально времени теряется очень много.
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35426588
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем ты вообще используешь IE? Проще и надежней самому открывать коннект по 80-му порту и слать http запросы.
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35426641
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты знаешь, какой элемент тебе нужен, можешь дергать документ до тех пор, пока его не получишь.
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35427043
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЕсли ты знаешь, какой элемент тебе нужен, можешь дергать документ до тех пор, пока его не получишь.
Знаю,конечно.
В смысле непрерывно(например, раз в 0,1сек) пытаться исполнить код типа:
Код: plaintext
1.
2.
3.
4.
            Set frm = Form1.WebBrowser1.Document.Forms( 2 )
                frm.login.Value = ИМЯ
                frm.Password.Value = ПАРОЛЬ
                frm.submit
            Set frm = Nothing
если ошибка, исполняем снова, если нет ошибки, двигаемся дальше, вообще вариант-почему нет.

Или есть ф-ция, кот. сработает как только элемент появится типа WebBrowser1_DocumentComplete, обзовем ее условно WebBrowser1_Form(2)Complete???

White OwlПроще и надежней самому открывать коннект по 80-му порту и слать http запросы.
Не могли бы ткнуть пальцем в примеры, WebBrowser освоил, а с данной технологией особо не знаком.
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35427158
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, используя WinHttpRequest - Authentication Using Visual Basic
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35631963
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдесь спрятан весь HTML код WebBrowser1.DocumentText
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35631971
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S = WebBrowser1.DocumentText
Только почему-то вместо наших букв, там карявки :(
...
Рейтинг: 0 / 0
WebBrowser: как понять, что какой-то элемент уже загрузился.
    #35631975
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Называется приехал. И что дальше ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / WebBrowser: как понять, что какой-то элемент уже загрузился.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]