Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > Окончание загрузки страницы в WebBrowser |
Автор: Vladimir_K 19.1.2008, 23:42 |
Для проверки начала загрузки страницы в WebBrowser использую свойство OnDownloadBegin, а для окончания загрузки страницы - свойство OnDownloadComplete, но оно срабатывает раньше, чем страница загружается полностью, со всеми картинками и пр. Есть ли альтернативный способ проследить полную загрузку? |
Автор: VICTAR 19.1.2008, 23:45 |
OnDocumentComplete? |
Автор: LEE_ROY 20.1.2008, 01:48 | ||
+ OnNavigateComplete |
Автор: VoV_I_K 20.1.2008, 16:09 | ||
Народ! А ведь встроенную справку в делфи еще никто не отменял да? This example shows how to detect when a document is completely loaded, even if it includes multiple frames. Only the final OnDocumentComplete event passes the same Dispatch interface as the OnNavigateComplete event handler.
|
Автор: mmvds 20.1.2008, 18:44 |
Насколько я знаю у данных свойств проблемы с IE7, поэтому использую сторонний компонент EmbeddedWB, кстати в нем гораздо больше возможностей чем в WebBrowser. |
Автор: Vladimir_K 20.1.2008, 18:57 |
VoV_I_K, а в какую из этих процедур мне вставлять свои команды, которые должны выполняться по окончании загрузки? Сейчас попробовал, вроде бы сюда: procedure TForm1.WebBrowser1DocumentComplete, если условие выполняется. Или не так? |
Автор: VoV_I_K 20.1.2008, 19:38 |
Что бы не возникало больше вапросов обьясню! NavigateComplete2 возникает когда приходит первая порция данных с сервера pDisp хранит ссылку на интрерфейс главное страницы...т.е. той в которую могут быть вложены фреймы DocumentComplete срабатывает каждый раз при окончании загрузки документа(фрейма) Мы просто проверяем в каждом DocumentComplete , какой документт окончил загрузку и если это документ который был первым-главным, то все ОК!!! страницы загружена полностью Для тех кому лень читать! procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if (pDisp = CurDispatch) then begin Beep; {the document is loaded, not just a frame } CurDispatch := nil; {clear the global variable } ВОТ СЮДА НАДО ВСТАВЛЯТЬ end; end; И действительно юзай EmbeddedWB!!! он реально лучше |
Автор: Vladimir_K 20.1.2008, 22:05 |
Спасибо огромное всем! Вопрос решен. ![]() По крайней мере: 1. этот вопрос, 2. на сегодня. ![]() |
Автор: MadCoder 23.6.2008, 12:44 | ||
По-моему, это решается так:
|