一个网页因为加载超时,已经停止加载了,而部分加载的网页内容已经有我想要的文字内容。我该怎样获得那些内容呢?在未加载完网页时,用WebBrowser1.document 或者WebBrowser1.documentText 都报错。当然,可以用重新加载的方法来让网页从新加载完,可是网速慢,而且已经有了我要的内容,所以没有必要从新加载。

解决方案 »

  1.   

    document.onreadystatechange = function()
            {
                    if (document.readyState == "complete")
                    {
                         
                    }
            }
    判断状态获取内容
      

  2.   

    使用webclient 类看看下面的代码 在VS2005测试通过的
    WebClient myclient;
    myclient = new WebClient();
    String build;
                myclient.[color=#FF00FF]DownloadFile
    (textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt");
                build = myclient.DownloadString(textBox1 .Text .Trim ());
                richTextBoxsource.Text = build;            Stream stream = myclient.OpenRead(textBox1 .Text .Trim ());
                StreamReader  read = new StreamReader(stream);
                string code = read.ReadToEnd();
                richTextBox1.Text  = code;[/color]
      

  3.   

    使用webclient 类 看看下面的代码 在VS2005测试通过的 
    WebClient myclient; 
    myclient = new WebClient(); 

    String build; 
                myclient.DownloadFile(textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt"); 
                build = myclient.DownloadString(textBox1 .Text .Trim ()); 
                richTextBoxsource.Text = build;             Stream stream = myclient.OpenRead(textBox1 .Text .Trim ()); 
                StreamReader  read = new StreamReader(stream); 
                string code = read.ReadToEnd(); 
                richTextBox1.Text  = code;
      

  4.   

    试下  webclient   
      

  5.   

    采用超时策略:
    使用Timer控件,设置其时间间隔为1秒(视具体情况调整);
    有些网页会执行多次DocumentCompleted事件,所以不知道何时才算真正加载完网页了。
    这里采用超时策略,每次执行DocumentCompleted时间都会将计时器清0,如果超过1秒种之后没有再触发事件说明页面已经加载完毕。
     private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                if (browser.ReadyState == WebBrowserReadyState.Complete)
                    timer1.Enabled=true;
            }private void timer1_Tick(object sender, EventArgs e)
            {
                timer1.Enabled = false;
                Do();
            }
      

  6.   

    WebBrowser1.DocumentStream也为空吗强制调用WebBrowser1.Stop()试试看