Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Код страницы Добавлено: 15.01.07 16:58  

Автор вопроса:  webwoolf | ICQ: 333612475 
Может кто подскажет. Используя WebBrowser ( стандартный контрол ), можно ли получить не саму страницу а ее html код, или все же сей контрол не может такие задачи выполнять ?

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 webwoolf



ICQ: 333612475 

Вопросов: 9
Ответов: 21
 Профиль | | #1 Добавлено: 15.01.07 17:22
Попробовал вот так в VS2005:

        Me.WebBrowser1.Navigate("http://bla-bla-bla.ru";)
Me.TextBox1.Text = Me.WebBrowser1.Document.Body.InnerHtml


после запуска говорит:

Object reference not set to an instance of an object.


Что не так? Пример брал отсюдова:

http://www.vbnet.ru/faq/showtopic.asp?id=79

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 15.01.07 21:54
нет так то, что для обращения к .Document... и дальше документ этот соответственно должен быть загружен. А Navigate только открывает страницу для загрузки, а не приостанавливает, ожидая завершения загрузки...

Вывод: приостанавливать прогу самому, написав код ожидания загрузки...

например так:
Public Sub WhileIEBusy(WB As WebBrowser)
    Static Timeout As Long
    While WB.Document Is Nothing
        DoEvents
        Call Sleep(500&;)
        Timeout = Timeout + 1
        If Timeout > 100 Then GoTo e
    Wend
    
    While WB.ReadyState <> READYSTATE_COMPLETE
        DoEvents
        Call Sleep(500&;)
        Timeout = Timeout + 1
        If Timeout > 100 Then GoTo e
    Wend
e:
    Timeout = 0
End Sub

С учётом таймаута даже :)) повезло тебе, правда?

Юзать так:
Me.WebBrowser1.Navigate("http://bla-bla-bla.ru";)
Call WhileIEBusy (Me.WebBrowser1)
Me.TextBox1.Text = Me.WebBrowser1.Document.Body.InnerHtml

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 15.01.07 22:29
в VS 2005 это можно сделать гораздо проще.. смотри класс WebClient.. там возможностей для этого.. туева хуча!!

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 17.01.07 14:48
Вывод: приостанавливать прогу самому, написав код ожидания загрузки...

Вообще-то у него событие есть для этого.

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 18.01.07 02:23
и даже не одно :)

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 18.01.07 05:16
Но из всех вариантов ты выбрал самый кривой :)

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 18.01.07 13:55
неправдо, вэсь прикол был в таймауте... да мудится с 3-мя событиями, устанавливая в каждом флаги... бээ... )))

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 18.01.07 17:05
А кто тебе сказал, что программирование - это просто? :)

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 19.01.07 01:37
ну я тебе говорю. Обоснование выше, вместо обработки трёх событий + таймаута, написана одна функция которую использовать вполне удобно, и просто :)

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 19.01.07 05:35
Криво != просто. Если думаешь, что программирование - это просто, могу дать задачку :)

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 20.01.07 20:26
Сам я тебе могу задачку дать, и ещё и денег за неё, ты хоть бы что нибуть по криптографии сделал :) А программирование понятие растяжимое, например на ASP.NET я могу за 5 мин сайт написать :))))

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 20.01.07 20:48
Мало предлагал :) Кто же за 5 баксов переписывает алгоритм, который фиг найдешь, на ассемблер, да еще и во время сессии? :)
А программирование, изначально, составление алгоритмов, выполнимых на ЭВМ :P

Ответить

Номер ответа: 13
Автор ответа:
 webwoolf



ICQ: 333612475 

Вопросов: 9
Ответов: 21
 Профиль | | #13 Добавлено: 22.01.07 17:15
Спасибо , узнал много нового ;)

Ответить

Номер ответа: 14
Автор ответа:
 »VladikComper«



ICQ: 419668582 

Вопросов: 23
Ответов: 147
 Web-сайт: vladikcomper.narod.ru
 Профиль | | #14
Добавлено: 23.01.07 19:47
В Библиотеке кодов есть же такой пример!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам