如何为webBrowser导航事件设置超时

如何为webBrowser导航(url)事件设置超时

c #netframework 4.0

当然使用Timer。 例如:

public void NavigateTo(Uri url) { webBrowser1.Navigate(url); timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; MessageBox.Show("Timeout on navigation"); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url == webBrowser1.Url && timer1.Enabled) { timer1.Enabled = false; // etc.. } } 

我正在使用基于NavigatingNavigated事件的以下方法。 观察这两个事件之间的时间以重定向到家庭藻类。

  //Navigation Timer timer2.Enabled = true; timer2.Interval = 30000; br.DocumentCompleted += browser_DocumentCompleted; br.DocumentCompleted += writeToTextBoxEvent; br.Navigating += OnNavigating; br.Navigated += OnNavigated; br.ScriptErrorsSuppressed = true; br.Navigate(ConfigValues.websiteUrl); private void OnNavigating(object sender, WebBrowserNavigatingEventArgs e) { //Reset Timer timer2.Stop(); timer2.Start(); WriteLogFunction("OnNavigating

“+e.Url.ToString()); } private void OnNavigated(object sender, WebBrowserNavigatedEventArgs e) { //Stop Timer timer2.Stop(); WriteLogFunction(“NAVIGATED <><><><><><><> ” + e.Url.ToString()); } private void timer2_Tick(object sender, EventArgs e) { WriteLogFunction(” Navigation Timeout TICK”); br.Stop(); br.Navigate(ConfigValues.websiteUrl); }

参考

  1. 为webbrowser加载方法创建超时
  2. 如果页面不加载,webbrowser超时