Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Полная загрузка страницы в Twebbrowser [D7, XP]


lewka ©   (2015-08-05 10:10:00) 

Здравствуйте, уважаемые мастера программирования.
Подскажите, пожалуйста, как определить, что страница открываемая в TWebbrowser полностью загрузилась. Я знаю что есть событие OnDownloadComplete, но оно выполняется много раз при открывании страницы.
Вот например сайт http://napartnjorkah.blogspot.ru, при открывании его событие срабатывает 8 раз.


ухты   (2015-08-06 14:34:00) [1]

события только инструмент, исходить надо от задачи


sniknik   (2015-08-06 10:09:00) [2]

зачем определять? читать буквально что значат названия событий и что в доке по ним написано...

NavigateComplete - загрузилось, именно та страница которую запрашивали. то что там она в процессе построения документа еще что то догружает неважно. страница загрузилась.

DocumentComplete - сформирован документ, все предварительные, для этого нужные догрузки сделаны. изменения по событиям например, перестройка внутри страницы по например нажатию на что-то, без смены url-а (Ajax)не считается. (если считать то некоторые вообще никогда не сформируются ибо динамические по сути)


ухты   (2015-08-06 00:39:00) [3]

надо определить сначала что есть "полностью загрузилась"


sniknik   (2015-08-05 15:53:00) [4]

хотя, Navigate не то же самое что документ, он до формирования страницы делается... но она загрузилась, т.е. "по букве вопроса"
> полностью загрузилась
подходит.


sniknik   (2015-08-05 15:50:00) [5]

как может быть завершён документ которого не видно? не логично.
попробуй NavigateComplete по той же схеме, может выйдет.


lewka   (2015-08-05 15:19:00) [6]

Все понятно с этим.
А еще маленький вопрос/
Делаю Webbrowser скрытым (через Hide), загружаю в него страницу.
Но OnDocumentComplete не срабатывает пока не сделать Webbrowser.Show
Как в скрытом TWebbrowser определить загрузился сайт или нет?


sniknik   (2015-08-05 13:53:00) [7]

там наверное в фоне/невидимо куча реферальных ссылок открывается, т.сказать по теме, зарабатывают на тебе...
еще Ajax может быть, догружать "по ходу"... хоть через полчаса(от твоих действий), но страница та же...

делай так
procedure TForm1.Button2Click(Sender: TObject);
var
 url: OleVariant;
begin
 iCount:= 0;
 Label1.Caption:= '0';

 url:= ' http://napartnjorkah.blogspot.ru/';

 WebBrowser2.Navigate2(url);
end;

procedure TForm1.WebBrowser2DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
 if URL = ' http://napartnjorkah.blogspot.ru/' then begin
   iCount:= iCount + 1;
   Label1.Caption:= 'DocumentComplete ' + IntToStr(iCount);
 end;
 Memo1.Lines.Add(URL);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо