В этом выпуске:Как получить содержимое фрейма с помощью mshtml?
У меня есть крючок в IE, который реагирует на событие WebBrowser.OnNavigateComplete2
, чтобы проанализировать содержимое документа для получения точной информации.
Этот документ содержит рамки, поэтому я просматриваю HTMLDocument.frames
. Для каждого из них я просматриваю свойство document.body.outerHTML для проверки содержимого.
Проблема в том, что строка, которую я ищу, никогда не отображается там, тогда как она отображается на финальной странице. Итак, я ищу не в том месте? Если он отображается, когда страница полностью загружена, то она загружается в какой-то момент, верно? Но в каком объекте я должен смотреть?
BTW, я не знаю, имеет ли это значение, но страница, которую я ищу, поступает из приложения 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;
}
}
Благодарим за помощь.
@rams Это событие запускается много раз для каждой страницы, так что я решил, что каждый раз, когда в рамке загружаются, даже если я не получаю, чтобы поймать один я ищу. Если нет, каково будет событие, чтобы поймать содержимое фреймов?
Что я хочу сделать, это определить точную информацию о точном кадре, а затем сохранить его. позже загружается веб-страница, инициированная некоторым действием пользователя, где мне нужна информация, которую я получил от разбора фрейма.
Я смотрю в это, thx. – Antoine 2008-12-05 14:29:08