Вот проблема:
У меня есть хук в IE, который реагирует на событие WebBrowser.OnNavigateComplete2
, чтобы проанализировать содержимое документа на предмет точной информации.
Этот документ содержит фреймы, поэтому я смотрю на HTMLDocument.frames
. Для каждого я просматриваю свойство document.body.outerHTML для проверки содержимого.
Проблема в том, что искомая строка там никогда не отображается, тогда как она отображается на странице финала. Итак, я смотрю не в том месте? Если он отображается, когда страница полностью загружена, то он загружается в какой-то момент, верно? Но на какой объект мне смотреть?
Кстати, я не знаю, имеет ли это какое-либо значение, но страница, которую я ищу, получена из приложения ASP.NET.
public void OnNavigateComplete2(object pDisp, ref object url)
{
document = (HTMLDocument)webBrowser.Document;
mshtml.FramesCollection frames = document.frames;
for (int i = 0; i < frames.length; i++)
{
object refIdx = i;
IHTMLWindow2 frame = (IHTMLWindow2)frames.item(ref refIdx);
string frameContent = frame.document.body.outerHTML;
}
}
Спасибо за вашу помощь.
@ бараны
Это событие запускается много раз для каждой страницы, поэтому я решил, что это происходит каждый раз при загрузке рамки, даже если мне не удается поймать ту, которую я ищу. Если нет, то каким было бы событие для захвата содержимого фреймов?
То, что я хочу сделать, это обнаружить некоторую точную информацию в конкретном кадре, а затем сохранить ее. позже загружается веб-страница, вызванная некоторыми действиями пользователя, где мне нужна информация, полученная при разборе фрейма.