用webBrowser開啟網頁出現指令碼錯誤怎麼辦

2022-05-06 09:48:10 字數 1365 閱讀 8109

當ie瀏覽器遇到指令碼錯誤時,在瀏覽器左下角會出現乙個黃色圖示,點選可以檢視指令碼錯誤的詳細資訊,並不會有彈出的錯誤資訊框。我們在用webbrowser編寫的程式開啟網頁,遇到指令碼有問題是,會彈出乙個錯誤提示框,需要確認後才能夠進行執行。如果我們設計的程式是用來自動處理網頁的,那麼在出現這種情況時,程式執行被打斷,需要人工干預。這顯然無法達到我們的要求。

那麼,在使用webbrowser開啟網頁遇到指令碼錯誤時如何處理才能讓程式無干擾的自動執行呢?

webbrowser給我們提供了乙個屬性:scripterrorssuppressed 。當不想再遇到指令碼錯誤時彈出錯誤提示框,可以將該值設為true。

webbrowser1.scripterrorssuppressed = true;

scripterrorssuppressed 屬性的具體的用法如下:

將此屬性設定為 false 可除錯顯示在 webbrowser 控制項中的網頁。如果要使用該控制項向應用程式新增基於 web 的控制項和指令碼**,則此屬性十分有用。如果將該控制項用作泛型瀏覽器,則此屬性用處不大。完成應用程式的除錯後,將此屬性設定為 true 以取消顯示指令碼錯誤。

注意:當 scripterrorssuppressed 設定為 true 時,webbrowser 控制項將隱藏其源自基礎 activex 控制項的所有對話方塊,而不僅僅是指令碼錯誤。有時,在顯示某些對話方塊(例如,用於瀏覽器安全設定和使用者登入的對話方塊)時,可能需要取消顯示指令碼錯誤。在這種情況下,應將 scripterrorssuppressed 設定為 false,並在 htmlwindow.error 事件的處理程式中取消顯示指令碼錯誤。

這種做法的負作用如上面紅字描述的,如果只想遮蔽指令碼錯誤,可以用以下方法:

下面的**演示如何在不取消顯示其他對話方塊的情況下取消顯示指令碼錯誤。在此示例中,將 scripterrorssuppressed 屬性設定為 false 以確保顯示對話方塊。htmlwindow.error 事件的處理程式取消顯示該錯誤。只有在文件已完成載入時才能訪問此事件,因此該處理程式被附加到 documentcompleted 事件處理程式中。

// 僅隱藏指令碼錯誤,其他錯誤照樣提示   

private void suppressscripterrorsonly(webbrowser browser)

private void browser_documentcompleted(object sender,

webbrowserdocumentcompletedeventargs e)

private void window_error(object sender,

htmlelementerroreventargs e)

/* 何問起 hovertree.com */

用網頁開啟oracle

管理員登陸 sqlplus sys root as sysdba 普通使用者登陸 sqlplus scott tiger2 在瀏覽器中訪問oracle 管理員登陸 http localhost 1158 em 普通使用者登陸 http localhost 5560 isqlplus 埠號的查詢位址為...

WebBrowser列印後關閉網頁

在網頁上使用webbrowser控制項,可以實現無提示框,直接把頁面輸出到印表機進行列印。事實上,無提示列印之後,常見處理是直接自動關閉網頁,但是這好象是個可能完成的任務。使用execwb 6,2 命令直接列印的時候,這個命令不阻塞程序,導致頁面上,無法知道何時列印完成。這個問題困擾了我好長時間,原...

C 通過webBrowser 框架網頁

最近一段時間因為公司老闆的要求 要求我對其他人開發的net框架網頁中自動插入資料,開始的時候我不清楚,後來到網上蒐集了一些資料 首先對webbrowser載入網頁 this webbrowser1.url new system.uri url位址 system.urikind.absolute 給一...