用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 */
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM