用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 */?
總結
以上是生活随笔為你收集整理的用webBrowser打开网页出现脚本错误怎么办的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 150lb是多少mpa(150lb)
- 下一篇: C#修改文件名方法