c#禁止Webbrowser控制項的彈出指令碼錯誤對話方塊

來源:互聯網
上載者:User

這不是一個新問題,網上討論此問題的文章不少,說什麼的都有,今天做個總結。
當我們使用WebBrowser控制項時彈出錯誤資訊框,而且會讓一些自動執行的程式暫停,如何禁用呢?

將WebBrowser控制項ScriptErrorsSuppressed 設定為True,可禁止彈出指令碼錯誤對話方塊,ScriptErrorsSuppressed屬性是對其基礎COM控制項的Silent屬性的封裝,因此設定ScriptErrorsSuppressed屬性和設定其基礎COM控制項的Slient屬性是效果一樣的,這一點通過反編譯System.Windows.Forms程式集可以證實。

為瞭解決這個問題,有的人專門從WebBrowser派生出一個新類,然後重寫了AttachInterfaces方法,其實也是沒有必要的,效果和直接設定ScriptErrorsSuppressed屬性相同。

不過要注意的是:
ScriptErrorsSuppressed 設定為True會禁用所有的對話方塊,比如提示Activex下載、執行以及安全登入等對話方塊。
如果不想禁止除指令碼錯誤之外的對話方塊,請使用MSDN上的程式碼範例:

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)
{
    // Ignore the error and suppress the error dialog box.
    e.Handled = true;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.