How to know whether WebBrowser navigating a error page?

前端 未结 2 1396
逝去的感伤
逝去的感伤 2021-01-18 18:12

for example, we navigating to http://www.ggg111.com, it\'s a error URL. but in WebBrowser it display a error page with this:

The webpage cannot be found 
 HTTP 40         


        
相关标签:
2条回答
  • 2021-01-18 18:29

    based on this control: http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx

    there is NavigateError function, fires when an error occurs during navigation. here is my modified code:

    add event argument class first:

    
    public class NavigateErrorArgs : EventArgs
    {
        public object StatusCode { get; set; }
    
        public NavigateErrorArgs()
                : base()
        { }
    
        public NavigateErrorArgs(object statusCode)
                : base()
        {
           this.StatusCode = statusCode;
        }
    }
    

    then add delegate and event in class ExtendedWebBrowser:

    
    public delegate void NavigateErrorHandler(object sender, NavigateErrorArgs e);
    public event NavigateErrorHandler NavigateError;
    
    protected void OnNavigateError(NavigateErrorArgs e)
    {
      if (NavigateError != null)
          NavigateError(this, e);
    }
    
    

    and modify method in class WebBrowserExtendedEvents:

    
    public void NavigateError(object pDisp, ref object URL, ref object frame, ref object statusCode, ref bool cancel)
    {
        _Browser.OnNavigateError(new NavigateErrorArgs(statusCode));
    }
    
    0 讨论(0)
  • 2021-01-18 18:33

    not sure about this but,.... try it,...

    string check = webBrowser1.DocumentText;
            if (check.IndexOf("The webpage cannot be found") > 1)
            {
                MessageBox.Show("ERROR OCCURED");
                //what else you want to do, do here!!!
            } 
    

    this will search for given text and if found will execute further code

    0 讨论(0)
提交回复
热议问题