Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WebBrowser - конец загрузки без onDocumentComplete, не работает.... 
:(
    Опции темы
kr3v3tkus
Дата 2.2.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



Подскажите, делал разными методами, ничерта не работает, мб это изза перенаправления?
Код

WebBrowser1.Navigate('http://www.world-art.ru/search.php?name=' + value + '&global_sector=animation');
while (WebBrowser1.ReadyState < READYSTATE_COMPLETE) do Application.ProcessMessages;
ShowMessage('LocationURL');

просто повисает и даже форму не показывает
PM MAIL   Вверх
Rrader
  Дата 2.2.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



А так не пробовали?
Код

while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
   Application.ProcessMessages;



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
kr3v3tkus
Дата 2.2.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



пробовал :( отсылает 58 байт и виснет мёртвым грузом...
PM MAIL   Вверх
Rrader
  Дата 2.2.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



Тогда чему равен ReadyState, смотрели? А до OnDocumentComplete без проверки дело доходит?


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
kr3v3tkus
Дата 2.2.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



без проверки доходит, ReadyState сначала 1 потом 3 и на 3х дальше не идёт :( это может быть изза того, что там скрипт перенаправления?
PM MAIL   Вверх
Rrader
  Дата 2.2.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



Тогда попробуйте
Код

while WebBrowser1.ReadyState <> READYSTATE_INTERACTIVE do
   Application.ProcessMessages;
//...



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
kr3v3tkus
Дата 2.2.2009, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



спасибо, так идётsmile только вот он сразу пролетает на действие после цикла ожидания, это вероятно потому, что сначала браузер грузит поисковую страничку, которая имеет особенность при совпадении с запросом сразу редиректить, таким образом браузер грузит 2 страницы, не подскажите как сделать ожидание, чтобы загрузилась 2ая страница, просто если сделать 2 цикла на ожидание, то всё равно срабатывает только на загрузь 1ой страницы :(
PM MAIL   Вверх
kr3v3tkus
Дата 3.2.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



В общем пока сделал так:
Код

  WebBrowser1.Navigate('http://www.world-art.ru/search.php?name=' + value + '&global_sector=animation');
  while WebBrowser1.ReadyState <> READYSTATE_INTERACTIVE do
    Application.ProcessMessages;
  page_ok := false;

  while (WebBrowser1.ReadyState <> 3)and(page_ok <> true)  do
    Application.ProcessMessages;
  sleep(8000);

  ShowMessage('ok');

Код

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if page_ok = false then page_ok := true;

Но это конечно совсем никуда не годится... Тем более сколько бы я не ставил задержку - всё равно сначала выполняется ShowMessage('ok'), а потом отрисовывается в браузере страничка... или это отрисовка тормозит? :( В общем если кто знает метод получше - поделитесь пожалуйста smile
PM MAIL   Вверх
Rrader
  Дата 4.2.2009, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



kr3v3tkus, у себя попробовал такой код:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.world-art.ru/search.php?name=Hey&global_sector=all');
  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
    Application.ProcessMessages;
  ShowMessage('Done');
end;

Когда все прогружается, сообщение показывается, т.е. все нормально. Вы в какое время этот код выполняете, при создании формы?


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
kr3v3tkus
Дата 4.2.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



эээ... да  smile а так не надо делать?  smile
зы только единственное что - мне нужна не эта страничка, а перенаправление с неё, т.е. например 
Код

WebBrowser1.Navigate('http://www.world-art.ru/search.php?name=Beck&global_sector=animation');

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

Это сообщение отредактировал(а) kr3v3tkus - 4.2.2009, 10:28
PM MAIL   Вверх
Rrader
  Дата 4.2.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.world-art.ru/search.php?name=Beck&global_sector=animation');
  while WebBrowser1.Busy do
    Application.ProcessMessages;
  ShowMessage('Done');
end;



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
kr3v3tkus
Дата 4.2.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: 1
Всего: 1



упсъ ^__^ огромнейшее пасибо :3
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1269 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.