用webBrowser打开网页出现脚本错误怎么办
當(dāng)IE瀏覽器遇到腳本錯(cuò)誤時(shí),在瀏覽器左下角會(huì)出現(xiàn)一個(gè)黃色圖標(biāo),點(diǎn)擊可以查看腳本錯(cuò)誤的詳細(xì)信息,并不會(huì)有彈出的錯(cuò)誤信息框。我們?cè)谟脀ebBrowser編寫的程序打開網(wǎng)頁(yè),遇到腳本有問題是,會(huì)彈出一個(gè)錯(cuò)誤提示框,需要確認(rèn)后才能夠進(jìn)行執(zhí)行。如果我們?cè)O(shè)計(jì)的程序是用來自動(dòng)處理網(wǎng)頁(yè)的,那么在出現(xiàn)這種情況時(shí),程序運(yùn)行被打斷,需要人工干預(yù)。這顯然無法達(dá)到我們的要求。
????? 那么,在使用webBrowser打開網(wǎng)頁(yè)遇到腳本錯(cuò)誤時(shí)如何處理才能讓程序無干擾的自動(dòng)運(yùn)行呢?
????? webBrowser給我們提供了一個(gè)屬性:ScriptErrorsSuppressed 。當(dāng)不想再遇到腳本錯(cuò)誤時(shí)彈出錯(cuò)誤提示框,可以將該值設(shè)為TRUE。
????? webBrowser1.ScriptErrorsSuppressed = true;
????? ScriptErrorsSuppressed 屬性的具體的用法如下:
????? 將此屬性設(shè)置為 false 可調(diào)試顯示在 WebBrowser 控件中的網(wǎng)頁(yè)。如果要使用該控件向應(yīng)用程序添加基于 Web 的控件和腳本代碼,則此屬性十分有用。如果將該控件用作泛型瀏覽器,則此屬性用處不大。完成應(yīng)用程序的調(diào)試后,將此屬性設(shè)置為 true 以取消顯示腳本錯(cuò)誤。http://hovertree.com/h/bjaf/scjyuanma.htm
????? 注意:當(dāng) ScriptErrorsSuppressed 設(shè)置為 true 時(shí),WebBrowser 控件將隱藏其源自基礎(chǔ) ActiveX 控件的所有對(duì)話框,而不僅僅是腳本錯(cuò)誤。有時(shí),在顯示某些對(duì)話框(例如,用于瀏覽器安全設(shè)置和用戶登錄的對(duì)話框)時(shí),可能需要取消顯示腳本錯(cuò)誤。在這種情況下,應(yīng)將 ScriptErrorsSuppressed 設(shè)置為 false,并在 HtmlWindow.Error 事件的處理程序中取消顯示腳本錯(cuò)誤。
????? 這種做法的負(fù)作用如上面紅字描述的,如果只想屏蔽腳本錯(cuò)誤,可以用以下方法:
????? 下面的代碼演示如何在不取消顯示其他對(duì)話框的情況下取消顯示腳本錯(cuò)誤。在此示例中,將 ScriptErrorsSuppressed 屬性設(shè)置為 false 以確保顯示對(duì)話框。HtmlWindow.Error 事件的處理程序取消顯示該錯(cuò)誤。只有在文檔已完成加載時(shí)才能訪問此事件,因此該處理程序被附加到 DocumentCompleted 事件處理程序中。
// 僅隱藏腳本錯(cuò)誤,其他錯(cuò)誤照樣提示 private void SuppressScriptErrorsOnly(WebBrowser browser) { // 確信 ScriptErrorsSuppressed 設(shè)為 false. browser.ScriptErrorsSuppressed = false; // 處理 DocumentCompleted 事件以訪問 Document 對(duì)象. 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) { // 忽略該錯(cuò)誤并抑制錯(cuò)誤對(duì)話框 e.Handled = true; }/* 何問起 hovertree.com */?
總結(jié)
以上是生活随笔為你收集整理的用webBrowser打开网页出现脚本错误怎么办的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 150lb是多少mpa(150lb)
- 下一篇: 后台架构师图谱