如何在WebBrowser控件中保留证书弹出并抑制脚本错误

时间:2018-04-09 02:33:38

标签: c# wpf winforms webbrowser-control

有两种类型的弹出窗口,如下所示: certificate

script error

我想显示证书并抑制错误,我该怎么做?

仅供参考,make SuppressScriptErrors = true也会阻止证书。

1 个答案:

答案 0 :(得分:0)

我知道这个问题发布已经有很长时间了,但是我找到了一个对我有用的解决方案。

    // 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;
    }

ref:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.webbrowser.scripterrorssuppressed?view=net-5.0

对于类型:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.htmlelementerroreventargs?view=net-5.0

您还可以检查错误的行号/网址以抑制某些错误。

如果错误说明是标记为已处理的语法错误。

-也是关于升级到最新版本的信息-我正在处理的网站必须是IE。