2010-11-07 34 views

Trả lời

11

Bằng cách sử dụng một Timer tất nhiên. Ví dụ:

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.. 
     } 
    } 
+0

Sẽ không phải là chờ cho WebBrowser để thực sự hoàn chỉnh chuyển hướng trước khi hủy, chứ không phải là kết thúc nó sau khi một số tiền nhất định của thời gian? –

+2

Erm, không. Không có gì để kết thúc. Chỉ cần điều hướng đến nơi khác. –

+1

vì vậy khi bộ đếm thời gian được đánh dấu tôi sẽ điều hướng đến một nơi khác? – MonsterMMORPG

0

Tôi đang sử dụng phương pháp tiếp cận sau dựa trên NavigatingNavigated sự kiện. Thời gian giữa hai sự kiện này được quan sát để chuyển hướng đến tảo nhà.

 //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); 
    } 

Reference

  1. Create a time-out for webbrowser loading method
  2. webbrowser timeout if page wont load
+0

Vì vậy, 'br.Stop()' gây ra sự kiểm soát trình duyệt web để ngừng tìm cách điều hướng? – crush

Các vấn đề liên quan