Как получить полное тело HTML с помощью вспомогательного объекта браузера (BHO) в случае страницы DHTML / AJAX?

Я пишу BHO, который анализирует HTML, взятый из 'onDocumentComplete' события 'DWebBrowserEvents2'. В настоящее время он работает нормально, если у меня нет DHTML/AJAX страницы, на которой дескриптор HTML доставляется слишком рано.

Для примера я пробовал использовать его на 'http://www.google.com'. Из события 'onDocumentComplete' я могу получить большую часть страницы, но в самой верхней ссылке / привязках 'href' для карт, видео, orkut и т. Д. Недоступен (обычно это javascript:void(0)).

Есть ли у кого-нибудь идеи, как захватить его, когда страница полностью загружена, а не только тогда, когда загружен фрейм / тело?

Спасибо,

ОБНОВЛЕНИЕ

Похоже, есть проблема с MSHTML API. Я разместил тот же вопрос на форуме MSDN и немного ответил. Также я подробно описал свою проблему и выводы ....

http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/d517dbd1-df22-4dce-8ff9-0ca6786757f9

Если кто-то найдет способ решить эту проблему, поделитесь ...

Спасибо,


person Favonius    schedule 21.07.2010    source источник


Ответы (1)


Изменения AJAX DHTML в основном не вызывают дальнейшего onDocumentComplete вызова.

Вам необходимо зарегистрироваться для дальнейших событий Window или Document, таких как DISPID_HTMLWINDOWEVENTS2_ONLOAD.

Один из способов - сообщить окну com-объекта, который вы предоставляете с помощью универсального интерфейса приемника событий. hr = AtlAdvise(winDisp, pWinHandler, DIID_HTMLWindowEvents2, &dwCookie);

Когда это дополнительное событие запускается, при повторном изучении документа вы обнаружите, что он обновлен.

person Greg Domjan    schedule 28.12.2010