none
怎么屏蔽Windows.Forms.WebBrowser的脚本错误提示? RRS feed

  • 问题

  •             frame.ScriptErrorsSuppressed = true;

    我在初始化的时候加入了如上代码,但是加载的时候仍然会弹出脚本错误窗口
    2014年1月17日 8:58

答案

  • 可以试一下处理WebBrowser.Document.Window.Error事件,把HtmlElementErrorEventArgs的Handled属性设置为true
    • 已标记为答案 MaJiXiang 2014年1月20日 12:25
    2014年1月17日 11:14
  • 你好:

    有可能跟系统有关,在Windows XP上会出现这个问题,请参考MSDN文档:WebBrowser.ScriptErrorsSuppressed Property 好像.net4.5的版本就不支持Windows XP了。

    仿照里面的示例代码看看是否有效果:

    // Hides script errors without hiding other dialog boxes. 
    private void SuppressScriptErrorsOnly(WebBrowser browser)
    {
        // Ensure that ScriptErrorsSuppressed is set to false.
        browser.ScriptErrorsSuppressed = false;
    
        // Handle DocumentCompleted to gain access to the Document object.
        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)
    {
        // Ignore the error and suppress the error dialog box. 
        e.Handled = true;
    }
    


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 MaJiXiang 2014年1月20日 12:25
    2014年1月20日 11:57
    版主

全部回复

  • 可以试一下处理WebBrowser.Document.Window.Error事件,把HtmlElementErrorEventArgs的Handled属性设置为true
    • 已标记为答案 MaJiXiang 2014年1月20日 12:25
    2014年1月17日 11:14
  • 你好:

    有可能跟系统有关,在Windows XP上会出现这个问题,请参考MSDN文档:WebBrowser.ScriptErrorsSuppressed Property 好像.net4.5的版本就不支持Windows XP了。

    仿照里面的示例代码看看是否有效果:

    // Hides script errors without hiding other dialog boxes. 
    private void SuppressScriptErrorsOnly(WebBrowser browser)
    {
        // Ensure that ScriptErrorsSuppressed is set to false.
        browser.ScriptErrorsSuppressed = false;
    
        // Handle DocumentCompleted to gain access to the Document object.
        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)
    {
        // Ignore the error and suppress the error dialog box. 
        e.Handled = true;
    }
    


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 MaJiXiang 2014年1月20日 12:25
    2014年1月20日 11:57
    版主
  • 是啊。我就是XP上出现这样的问题的,不过我自己摸索出来解决办法了,和你的一样,确实不弹了,不过就是每次加载完页面都要去注册一下事件,会不会对性能有影响呢。
    2014年1月20日 12:24
  • 性能上影响应该不大,假如你使用这种方式特别多,多到每秒执行几百上千次,那可能会有比较明显的影响,但正常情况下应该不会。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年1月21日 1:26
    版主