Как получить полное тело HTML, используя вспомогательный объект браузера (BHO) в случае страницы DHTML/AJAX?
Я пишу BHO, который анализирует HTML, взятый из 'onDocumentComplete'
событие 'DWebBrowserEvents2'
, В настоящее время он работает нормально, если у меня нет DHTML/AJAX
страница, где HTML дескриптор доставляется слишком рано.
Например, я попытался использовать его на 'http://www.google.com'
, От 'onDocumentComplete'
событие, которое я могу получить большую часть страницы, но в самой верхней ссылке / якорях, 'href'
для карт, видео, orkut и т. д. недоступно (обычно это javascript:void(0)
).
Кто-нибудь есть идеи, как захватить его, когда страница полностью загружена, а не только когда загружен кадр / тело?
Спасибо,
ОБНОВИТЬ
Кажется, есть какая-то проблема с MSHTML API. Я разместил тот же вопрос на форуме MSDN и некоторые ответы. Также я подробно изложил мою проблему и выводы....
Если кто-то найдет способ решить эту проблему, пожалуйста, поделитесь...
Спасибо,
1 ответ
Изменения AJAX DHTML в основном не вызывают дальнейшее onDocumentComplete
вызов.
Вам необходимо зарегистрироваться для дальнейших событий Window или Document, таких как DISPID_HTMLWINDOWEVENTS2_ONLOAD
,
Один из способов - сообщить окну com-объекта, который вы предоставляете, с помощью общего интерфейса приемника событий.hr = AtlAdvise(winDisp, pWinHandler, DIID_HTMLWindowEvents2, &dwCookie);
Когда это дальнейшее событие будет инициировано, повторно изучив документ, вы обнаружите, что он обновлен.