Как получить полное тело HTML, используя вспомогательный объект браузера (BHO) в случае страницы DHTML / AJAX? - PullRequest
1 голос
/ 21 июля 2010

Я пишу 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 Ответ

2 голосов
/ 28 декабря 2010

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

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

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

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

...