下面的问题:

我在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;
    }
}

感谢您的帮助。


@rams 此事件是推出了许多次,每次页面,所以我想这是每一个框架被加载时,即使我没有得到赶上一个我要找的。如果不是这样,这将是赶上帧内容的情况?

我想要做的就是在检测精确帧精确的一些信息,然后保存。后来,网页加载一些用户操作,我需要从我的分析框架得到了信息触发。

有帮助吗?

解决方案

你知道你正在寻找的内容框架的名称/ ID?如果是这样,在你navigateComplete2事件,你能得到像

在框架上的参考
iFrame frm = document.frames(<your frame id>);

int readyState=0;

while(frm.readystate !=4){
// do nothing. be careful to not create an endless loop
}

if(frm.readyState==4){
   // get your content now
}

HTH

其他提示

您使用某种类型的线程的?运行在一个单独的线程浏览器真的弄乱的东西。尝试在STAThread执行,并检查你得到正确的结果。

您的字符串不显示的原因是因为该框架。它加载到主文档后,web浏览器控件激发文档浏览完整的事件。在这一点上,框架还没有要求它们的来源。该文件是由web浏览器控制解析之后,框架来源请求是问题和下载。

您可以请描述你所要完成的是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top