Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить объект HTML документа. Как? / 4 сообщений из 4, страница 1 из 1
23.12.2003, 12:27
    #32360624
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить объект HTML документа. Как?
Вот кусок кода - выдрал из книжки, всё равно не работает:
Код: 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
23.12.2003, 13:23
    #32360767
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить объект HTML документа. Как?
Всё нашел сам. В общем, надо было подождать пока загрузка закончится, т.е. обрабатывать документ после эвента OnNavigate2Complete.
...
Рейтинг: 0 / 0
23.12.2003, 23:04
    #32361484
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить объект HTML документа. Как?
нет, получать документ надо в OnDocumentComplete, не факт, что в момент обработки события OnNavigateComplete документ будет готов ПОЛНОСТЬЮ.

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

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


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