winform只屏蔽js脚本错误弹框,不屏蔽证书弹框

新手第一次用winform。遇到的js脚本错误跟证书弹框两者不可兼得的问题。以下是网上搜索遇到的坑跟最终的解决方案

坑一:将ScriptErrorsSuppressed设置为true。就是这个导致证书无法弹出来。进不了一些需要证书的网站。

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

网上给出的上面这段代码。不设置true然后加上这段代码。我觉得是能屏蔽掉一些脚本错误的。但是大部分的js报错还是无法屏蔽。

坑二:引入SHDocVw。可以屏蔽脚本错误。但是证书弹不出来

实际解决方案:

1、添加类NativeMethods

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace AuthClient
{
    public static class NativeMethods
    {
        public enum OLECMDF
        {
            // Fields
            OLECMDF_DEFHIDEONCTXTMENU = 0x20,
            OLECMDF_ENABLED = 2,
            OLECMDF_INVISIBLE = 0x10,
            OLECMDF_LATCHED = 4,
            OLECMDF_NINCHED = 8,
            OLECMDF_SUPPORTED = 1
        }

        public enum OLECMDID
        {
            // Fields
            OLECMDID_PAGESETUP = 8,
            OLECMDID_PRINT = 6,
            OLECMDID_PRINTPREVIEW = 7,
            OLECMDID_PROPERTIES = 10,
            OLECMDID_SAVEAS = 4,
            OLECMDID_SHOWSCRIPTERROR = 40
        }
        public enum OLECMDEXECOPT
        {
            // Fields
            OLECMDEXECOPT_DODEFAULT = 0,
            OL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值