C/S的一个项目,环境是XP系统+IE7.0
实现功能:WebBrowser加载一个Html,如果加载完成,WebBrowser调用javascript给Html绑定值。
问题:WebBrowser加载Html一直在加载。。最后抛出写入内容的错误'尝试读取或写入受保护的内存。这通常指示其他内存已损坏。'.
问题代码如下:
while (true)
{
    if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
    {
        // 处理绑定Html的值
        break;
    }
    // 等候
    Application.DoEvents();// 异常抛出的地方
}在线等候这个问题的求解。。谢谢。。

解决方案 »

  1.   

    可以看看这个http://zoufei8.blog.163.com/blog/static/89010543200952200585/edit/
      

  2.   

    public string LUrl
    {
        get    {        return _LUrl;    }    set    {
            _LUrl = value;    }
    }private string _LUrl;private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {    if (webBrowser1.ReadyState < WebBrowserReadyState.Complete || webBrowser1.Url.ToString() == LUrl) return;
        LUrl = webBrowser1.Url.ToString();}
      

  3.   

     while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
      

  4.   

    回复wuyq11:WebBrowser的状态一直的LoadingwebBrowser1_DocumentCompleted这个方法无法进入啊。。
      

  5.   

    while (browser.ReadyState != WebBrowserReadyState.Complete)
    {
                        Application.DoEvents();
    }bool loading = true;  
    string html = string.Empty;
    WebBrowser browser = new WebBrowser();
    public void GetHtml(string[] urls)
            {            
                browser.Navigated += new WebBrowserNavigatedEventHandler(browser_Navigated);
                foreach (string url in urls)
                {
                    loading = true;  
                    browser.Navigate(url);
                    while(loading)
                    {
                        Application.DoEvents();
                    }
                }
            }
            void browser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {
                html = browser.DocumentText;  
                loading = false;
            }