代码之家  ›  专栏  ›  技术社区  ›  Furkan Gözükara

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

  •  8
  • Furkan Gözükara  · 技术社区  · 14 年前

    c#网络框架4.0

    2 回复  |  直到 14 年前
        1
  •  12
  •   Hans Passant    14 年前

    当然是用定时器。例如:

        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..
            }
        }
    
        2
  •  0
  •   LCJ    10 年前

    我使用以下方法基于 Navigating Navigated 事件。观察这两个事件之间的时间,以便重定向到主pgae。

            //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. Create a time-out for webbrowser loading method
    2. webbrowser timeout if page wont load