使用webbrowser控件加载ajax网页内容

时间:2012-12-13 09:31:58

标签: ajax webbrowser-control

我正在使用WebBrowser控件来解析一个网站。结果很好但我对那些需要ScrollDown通过Ajax加载整个页面的网站有问题。我试图解雇“DocumentCompleted”事件但似乎是这一步文档已经加载到控件中,只是顶部(我的意思是没有滚动)。 我还尝试发送密钥并强制向下滚动或为各种WebBrowser状态执行javascript但没有成功。

我需要帮助,

谢谢,

1 个答案:

答案 0 :(得分:1)

我找到了这个问题的答案。我必须知道的是以下代码:

 public partial class Form1 : Form      
 {
    bool finished=false;
    public Form1()
    {            
        InitializeComponent();
        this.WindowState=FormWindowState.Maximized;          
        webBrowser1.ScriptErrorsSuppressed=true;            
        this.Show();                                 
        Wait4Load();
        string aaa = webBrowser1.DocumentText;                 
    }   

     void webBrowser1_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgs e) 
     {
         if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
         {
             finished = true;
             button1.PerformClick();
         }
     }

     void Wait4Load() 
     {
        webBrowser1.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);             
        button1.Click+=new EventHandler(button1_Click);         
       if(!finished) 
        {
            Application.DoEvents();
            Thread.Sleep(2000);
        } 
         finished = false;
     }

     void button1_Click(object sender, EventArgs e) 
     {           
       //footerWrapper
         while(webBrowser1.ReadyState != WebBrowserReadyState.Complete)
           Application.DoEvents();
         while(webBrowser1.IsBusy)
           Application.DoEvents();
           webBrowser1.Navigate("javascript:setTimeout(location.hash='#footerWrapper',2000)");     
         //Thread.Sleep(3000);
       finished=true;
     }       
}`