當IE瀏覽器遇到腳本錯誤時,在瀏覽器左下角會出現一個黃色圖標,點擊可以查看腳本錯誤的詳細信息,並不會有彈出的錯誤信息框。我們在用webBrowser編寫的程式打開網頁,遇到腳本有問題是,會彈出一個錯誤提示框,需要確認後才能夠進行執行。如果我們設計的程式是用來自動處理網頁的,那麼在出現這種情況時,程式 ...
當IE瀏覽器遇到腳本錯誤時,在瀏覽器左下角會出現一個黃色圖標,點擊可以查看腳本錯誤的詳細信息,並不會有彈出的錯誤信息框。我們在用webBrowser編寫的程式打開網頁,遇到腳本有問題是,會彈出一個錯誤提示框,需要確認後才能夠進行執行。如果我們設計的程式是用來自動處理網頁的,那麼在出現這種情況時,程式運行被打斷,需要人工干預。這顯然無法達到我們的要求。
那麼,在使用webBrowser打開網頁遇到腳本錯誤時如何處理才能讓程式無干擾的自動運行呢?
webBrowser給我們提供了一個屬性:ScriptErrorsSuppressed 。當不想再遇到腳本錯誤時彈出錯誤提示框,可以將該值設為TRUE。
webBrowser1.ScriptErrorsSuppressed = true;
ScriptErrorsSuppressed 屬性的具體的用法如下:
將此屬性設置為 false 可調試顯示在 WebBrowser 控制項中的網頁。如果要使用該控制項嚮應用程式添加基於 Web 的控制項和腳本代碼,則此屬性十分有用。如果將該控制項用作泛型瀏覽器,則此屬性用處不大。完成應用程式的調試後,將此屬性設置為 true 以取消顯示腳本錯誤。http://hovertree.com/h/bjaf/scjyuanma.htm
註意:當 ScriptErrorsSuppressed 設置為 true 時,WebBrowser 控制項將隱藏其源自基礎 ActiveX 控制項的所有對話框,而不僅僅是腳本錯誤。有時,在顯示某些對話框(例如,用於瀏覽器安全設置和用戶登錄的對話框)時,可能需要取消顯示腳本錯誤。在這種情況下,應將 ScriptErrorsSuppressed 設置為 false,併在 HtmlWindow.Error 事件的處理程式中取消顯示腳本錯誤。
這種做法的負作用如上面紅字描述的,如果只想屏蔽腳本錯誤,可以用以下方法:
下麵的代碼演示如何在不取消顯示其他對話框的情況下取消顯示腳本錯誤。在此示例中,將 ScriptErrorsSuppressed 屬性設置為 false 以確保顯示對話框。HtmlWindow.Error 事件的處理程式取消顯示該錯誤。只有在文檔已完成載入時才能訪問此事件,因此該處理程式被附加到 DocumentCompleted 事件處理程式中。
// 僅隱藏腳本錯誤,其他錯誤照樣提示 private void SuppressScriptErrorsOnly(WebBrowser browser) { // 確信 ScriptErrorsSuppressed 設為 false. browser.ScriptErrorsSuppressed = false; // 處理 DocumentCompleted 事件以訪問 Document 對象. browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler( browser_DocumentCompleted); } private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { ((WebBrowser)sender).Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error); } private void Window_Error(object sender, HtmlElementErrorEventArgs e) { // 忽略該錯誤並抑制錯誤對話框 e.Handled = true; }/* 何問起 hovertree.com */
推薦:http://www.cnblogs.com/roucheng/p/3521864.html