Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2017.04.02;
Скачать: [xml.tar.bz2];

Вниз

Полная загрузка страницы в Twebbrowser   Найти похожие ветки 

 
lewka ©   (2015-08-05 10:10) [0]

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


 
sniknik ©   (2015-08-05 13:53) [1]

там наверное в фоне/невидимо куча реферальных ссылок открывается, т.сказать по теме, зарабатывают на тебе...
еще 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;


 
lewka ©   (2015-08-05 15:19) [2]

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


 
sniknik ©   (2015-08-05 15:50) [3]

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


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

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


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

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


 
sniknik ©   (2015-08-06 10:09) [6]

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

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

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


 
ухты ©   (2015-08-06 14:34) [7]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2017.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.001 c
4-1281349091
PavDimka
2010-08-09 14:18
2017.04.02
Глюк с QueryPerformanceFrequency


15-1459700405
K-1000
2016-04-03 19:20
2017.04.02
Queue. Объясните, чего ему ещё надо?


2-1437652682
Ринсвинд
2015-07-23 14:58
2017.04.02
Запросы не поделили Buffer I/O


1-1350017157
de_guta
2012-10-12 08:45
2017.04.02
ComboBox


15-1459891805
Юрий
2016-04-06 00:30
2017.04.02
С днем рождения ! 6 апреля 2016 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский