Страница: 1 |
Страница: 1 |
Вопрос: Народ, я в Вас верю!!!
Добавлено: 22.06.04 17:22
Автор вопроса: Max-Neir
Помогите пожалуйста, кто знает как организовать поиск текста в окне компонента IE (SHDOCVW.DLL).
[Компонент используется в проге как браузер. Загружаю Web страницу, нужно на ней найти определенную строку текста, как быть???]http://www.vbnet.ru/forum/images/smiles/s7.gif
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #1
Добавлено: 22.06.04 17:45
Есть такая функций поиска в тексте - InStr()
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 22.06.04 19:34
Ну сохраняешь страницу на диск, и вперёд!
если InStr не катит, можешь в цикле по буквам периберать и отделять слово одно от другого, и искать то что тебе нужно.
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 23.06.04 01:02
WebBrowser.document.body.innerText, кажется... И сохранять ничего не надо.
Номер ответа: 4
Автор ответа:
Max-Neir
Вопросов: 2
Ответов: 4
Профиль | | #4
Добавлено: 23.06.04 01:05
Мне нужно искать строку напрямую в окне "браузера" , при этом страница находиться в состоянии загрузки и сохранить её нельзя, нужно хотя бы тогда передать данные из "браузера" в текстовую переменную, а как это сделать???
Номер ответа: 5
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #5
Добавлено: 23.06.04 07:04
Это есть в справочнике API
http://vbnet.ru/forum/show.aspx?id=46365
Сохраняешь в фаил и InStr() твой помощник!
Номер ответа: 6
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #6
Добавлено: 23.06.04 15:02
Dim HTML As String = WebBrowser.document.innerHTML
Попробуй так вытащить... Если не выйдет, поколупай другие объекты DOM
браузера, например, body...
Кстати, скорее всего регистр здесь будет критичен. То есть вот это:
Dim HTML As String = WebBrowser.document.innerhtml
может уже не сработать.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 23.06.04 15:54
моежт тутне OCX WebBrowser имеется ввиду, а IE? И надо из него вытащить?
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 23.06.04 15:55
>в окне компонента IE (SHDOCVW.DLL).
Гы, ну сорри, сначала делаем, потом думаем
Номер ответа: 9
Автор ответа:
Max-Neir
Вопросов: 2
Ответов: 4
Профиль | | #9
Добавлено: 23.06.04 16:26
>>>>>>> Павел
Впринципе это было-бы то-что нужно, но не работает, такое свойство не поддерживается обьектом, может знаешь какое-нибудь другое свойство или метод? А?
Повторюсь: сохранять страницу на диск нельзя, нужно динамически проверять существование определенного текста по мере загрузки страницы в окно "браузера".
Номер ответа: 10
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #10
Добавлено: 23.06.04 17:39
Да.. document.innerHTML Не пашет. А вот document.body.innerHTML -
отлично!
Private Sub Command1_Click()
MsgBox WebBrowser1.Document.body.innerHTML
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate2 "http://localhost"
End Sub
Только учти, что получить содержимое документа можно только после его
полной загрузки. Нельзя писать, например, так:
WebBrowser1.Navigate2 "http://localhost"
MsgBox WebBrowser1.Document.body.innerHTML
Потому что Navigate2 работает асинхронно, то есть не ожидает
окончания загрузки, а сразу выполняет код дальше. Поэтому советую
подписаться на событие DocumentComplete и в нём получать содержимое
документа.
Номер ответа: 11
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #11
Добавлено: 23.06.04 17:45
А если нужно получить не HTML, а текст, то вместо innerHTML пиши
innerText.