日期:2014-05-17  浏览次数:20406 次

WebBrowser的DocumentCompleted事件遇到了一些问题,求助
WebBrowser是类似浏览器把?WebBrowser.DocumentCompleted是在页面加载完成之后,触发的时间,可是有些页面加载完成之后还在继续加载,这种行为是叫异步加载么?页面加载完成之后触发DocumentCompleted事件,但是一些Json数据和其他HTML代码,还在继续加载,但是等到这些所有的东西全部加载完成之后,可能因为地址没有变或者其他原因,就不再触发DocumentCompleted事件了。
所以把代码卸载DocumentCompleted事件里头,我取不到我需要的Json数据。


                wbsTaoBaoIndex.DocumentCompleted += (sender, e) =>
                {
                    if (wbsTaoBaoIndex.DocumentText.IndexOf("登陆页") > 0)
                        LoginUser();//登录
                    else if (wbsTaoBaoIndex.DocumentText.IndexOf("搜索数据") > 0)
                        ;//
                    else if (wbsTaoBaoIndex.DocumentText.IndexOf("品牌数据") > 0)
                        ;//
                };


这样的话值触发一次事件,等到实际加载完成之后并不出发这个事件,所以我取不到数据,这个该怎么解决?



            while (true)
            {
                Thread.Sleep(500);
                Application.DoEvents();
                System.IO.StreamReader streamReader = new System.IO.StreamReader(browser.DocumentStream, encoding);
                string htmlDocumentText = streamReader.ReadToEnd();

                //如果不加第二个判断,可能会在页面未全部加载就通过判断,因为页面并不是一次加载完,
                //程序执行到这里的时候,WebBrowserReadyState可能已经完成,但是页面没有加载完成,
                //所以此处需要多一个“搜索数据”的判断