本帖最后由 shijie03 于 2012-09-13 17:33:20 编辑

解决方案 »

  1.   

    必须可以,webBrowser本身就可以显示ajax请求的html啊,如果单纯的ajax信息,你可以找到ajax请求的UR了就可以了~
      

  2.   

    可以,不过 控件没有办法知道 javascript的事件,DocumentComplete也不会发生,只能自己写个Timer去检查内容是不是改变了。
      

  3.   

    我在另一个帖子里写的测试代码
    http://topic.csdn.net/u/20120820/10/f2f21a45-5395-4cef-8d08-34e2022be8f1.html       System.Timers.Timer timer = null;        private void Form1_Load(object sender, EventArgs e)
            {
                string url = "http://stock.finance.sina.com.cn/hkstock/finance/01398.html";            webBrowser1.Navigate(url);
                timer = new System.Timers.Timer(1000);
                timer.AutoReset = false;
                timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);
                
            }        public delegate void GetDataHandler();        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
            {
                Invoke(new GetDataHandler(getData));            timer.Start();
            }
             private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                //避免webbroswer.DocumentCompleted被多次引发
                if ((e.Url != webBrowser1.Url) || (webBrowser1.ReadyState != WebBrowserReadyState.Complete))
                    return;
                //下面写你要在页面加载完毕后执行的代码。            getSelectedCtrl();
            }        private void getSelectedCtrl()
            {
                System.Windows.Forms.HtmlDocument doc = this.webBrowser1.Document;
                System.Windows.Forms.HtmlElementCollection selectCtrls = doc.GetElementsByTagName("select");
                string attName;            foreach (System.Windows.Forms.HtmlElement selectCtrl in selectCtrls)
                {
                    attName = selectCtrl.GetAttribute("table");
                    if (attName.Equals("tableGetBalanceSheet"))//如果table属性是资产负债表的话,模拟引发“报表类型”的选择控件
                    {
                        foreach(HtmlElement option in selectCtrl.Children)
                        {
                            if(option.GetAttribute("value") == "zero")
                            {
                                option.SetAttribute("selected", "selected");
                                break;
                            }
                        }
                        selectCtrl.RaiseEvent("onchange");
                        timer.Start();
                        return;                }            }        }