Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.165.66] |
|
Сообщ.
#1
,
|
|
|
Получаю коллекцию:
//Коллекция элементов документа CComPtr <IHTMLElementCollection> pIHTMLElementCollection; //Если документ присутвует if(pIHTMLDocument2){ //Если коллекция успешно получена if (S_OK == pIHTMLDocument2->get_all (&pIHTMLElementCollection)) { //Указатель CComPtr <IUnknown> pIUnknownEnum; //Получаем список элементов if (S_OK == pIHTMLElementCollection->get__newEnum(&pIUnknownEnum)){ //Пронумерованный список элементов CComQIPtr <IEnumVARIANT> pIEnumVARIANT = pIUnknownEnum; //Если получен указатель if(pIEnumVARIANT){ //Описываем переменную VARIANT var; //Сбрасываем блок данных pIEnumVARIANT->Reset(); //Перебираем все элементы коллекции и получаем базовые данные об элементах while(S_OK == pIEnumVARIANT->Next (1, &var, NULL)){ //Если указатель получен if(var.vt == VT_DISPATCH){ //Получаем элемент CComQIPtr <IHTMLElement> pIHTMLElement = var.pdispVal; //Если элемент получен if(pIHTMLElement){ //Элемент верхнего уровня CComQIPtr <IHTMLElement> pIHTMLParentElement; После получения в ней не все элементы которые находятся в браузере. <div class="data"><a href="javascript:void(0)" onclick="setUp(1)"><b class="up"></b>Найдено</a></div> Слова "Найдено" в коллекции не существует. Я так понимаю, это происходит потому, что это слово из скрипта. Но в браузере то оно есть. Причем, что интересно, если посмотреть исходный код, его тоже там не будет, а вот если посмотреть отладчиком будет. Я вообще раньше думал, что IHTMLDocument2 это по сути проекция содержимого страницы, с координатами элементов которые реально отображаются, и т.д., а оказываться нет. Вопрос, как можно получить все, что у нас на странице? В том числе данные подгруженные скриптами. В Хроме выглядит так: Прикреплённая картинка
Добавлено Удалите тему Я прогнал... Отображается... Сорри |