powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить объект HTML документа. Как?
4 сообщений из 4, страница 1 из 1
Получить объект HTML документа. Как?
    #32360624
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кусок кода - выдрал из книжки, всё равно не работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Navigate2(url);
CComPtr<IDispatch> pDocDispatch=GetHtmlDocument();
	CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pHtmlDocument(pDocDispatch);
	HRESULT hr;
	if(pHtmlDocument.p!=NULL)
	{
		IHTMLElementCollection* pElements;
		hr=pHtmlDocument->get_forms(&pElements);
		long length;
		hr=pElements->get_length(&length);
             }

Navigate2(url) отрабатывает нормально, после этого, насколько я понимаю, в объекте MSIE должен находиться HTML документ. После вызова метода get_length(), в переменной length пишет 0, хотя в документе точно содержатся формы. Где ошибка?
ЗЫ: Кстати, использую CHtmlView
...
Рейтинг: 0 / 0
Получить объект HTML документа. Как?
    #32360767
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё нашел сам. В общем, надо было подождать пока загрузка закончится, т.е. обрабатывать документ после эвента OnNavigate2Complete.
...
Рейтинг: 0 / 0
Получить объект HTML документа. Как?
    #32361484
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, получать документ надо в OnDocumentComplete, не факт, что в момент обработки события OnNavigateComplete документ будет готов ПОЛНОСТЬЮ.

более того, необходимо помнить, что если документ содержит вложенные фреймы, то на каждый такой фрейм будет приходить событие OnDocumentComplete, т.к. каждый фрейм содержит внутри тоже документ, т.е. в этом событии необходимо контролировать URL

на всяк случай, :)
самым используемым является перехват BeforeNavigate.
скажем, на страничке есть несколько ссылок, например "http://{my_func_id}", смотрим URL в BeforeNavigate, и если это наша ф-ия, то че-нить делаем и пишем TRUE в параметр Cancel, чтобы сам IE не поскакал по этой ссылке.
...
Рейтинг: 0 / 0
Получить объект HTML документа. Как?
    #32361697
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааа, понятно, спасибо. Действительно надо ловить OnDocumentComplete.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить объект HTML документа. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]