Как получить полное тело 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

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

Спасибо,

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам