如何知道WebBrowser是否导航错误页面?

例如,我们导航到http://www.ggg111.com ,这是一个错误的URL。 但是在WebBrowser中它会显示一个错误页面:

无法找到该网页 
  HTTP 400  
   最可能的原因:
地址中可能存在输入错误。 
如果您点击链接,它可能已过期。 

   你可以尝试什么: 
     重新输入地址。  

     返回到前一页。 
     转到并查找所需信息。  

如何知道WebBrowser是否导航错误页面?

另请查看: https : //sso.youshang.com/sso/userAuthnAction.do1

 HTTP状态404  -  /sso/userAuthnAction.do1
类型状态报告
消息/sso/userAuthnAction.do1
 description请求的资源(/sso/userAuthnAction.do1)不可用。

基于此控件: http : //www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx

有NavigateError函数,在导航期间发生错误时触发。 这是我修改过的代码:

首先添加事件参数类:

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

然后在类ExtendedWebBrowser中添加委托和事件:

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

和修改WebBrowserExtendedEvents类中的方法:

 public void NavigateError(object pDisp, ref object URL, ref object frame, ref object statusCode, ref bool cancel) { _Browser.OnNavigateError(new NavigateErrorArgs(statusCode)); } 

不确定这个,但是……试一试,……

 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!!! } 

这将搜索给定的文本,如果找到将执行更多的代码