|
|
|
| Требуется несколько раз подряд открывать в этом компоненте разные страницы и анализировать их код. Думал, что получиться сделать все поточно в одной процедуре. Но не работает следующая конструкция:
WebBrowser.Navigate "<ссылка>"
Do Until WebBrowser.ReadyState = READYSTATE_COMPLETE
Loop
<анализ WebBrowser.Document.body.outerHTML>
Курсор выполнения просто не выходит из цикла ожидания загрузки. При этом после прерывания Ctrl+Break и запуска на продолжение переход на следующую после цикла команду выполняется.
Во время прерывания значение WebBrowser.ReadyState = READYSTATE_COMPLETE. А при "зависании" оно все время равно 1, т.е. READYSTATE_LOADING.
Как правильно сделать? (Access 2003) | |
|
| |
|
|
|
| почитайте вот это
http://hiprog.com/index.php?option=com_content&task=view&id=251661548&Itemid=35 | |
|
| |
|
|
|
| osmor, спасибо, но, боюсь, мне не хватает квалификации.
В указанной Вами статье речь идет о закачке файлов + бездна кода. Мне же нужно простое, но гибкое прикладное решение для анализа содержимого web страниц, поэтому я взял ActiveX компонент WebBrowser.
У меня есть решение, основанное на использования события WebBroser_DocumentComplete, но оно громоздкое, потому что это событие наступает при закачке каждого следующего документа и их анализ приходится громоздко разветвлять. | |
|
| |
|
|
|
| Оказалось правильно так:
While wb.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend | |
|
| |
|
|
|
| а что же вы DoEvents не добавили?
Do Until WebBrowser.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
|
или так :
On Error Resume Next
While Me.WebBrowser.Document.ReadyState <> "complete"
DoEvents
Wend
On Error GoTo 0
|
| |
|
| |
|
|
|
| пока набирал ответ и проверял, вы и сами нашли решение проблемы... | |
|
| |
|
|
|
| Большое спасибо. Мог ведь и не найти | |
|
| |