webbrowser1 脚本报错_webbrowser脚本错误的解决办法

当在Winform中使用webbrowser控件的时候,一加载网页,就出现各种各样的JS脚本错误提示。

本人是使用如下两种方法解决的,具体是哪种解决问题,俺也不知道。

方法一:

public Form1()

{

InitializeComponent();

this.webBrowser1.ScriptErrorsSuppressed = true;

this.webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted;

}

private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

//## 设置文档窗口错误的处理。

this.webBrowser1.Document.Window.Error += OnWebBrowserDocumentWindowError;

}

private void OnWebBrowserDocumentWindowError(object sender, HtmlElementErrorEventArgs e)

{

e.Handled = true;

}

private void Form1_Load(object sender, EventArgs e)

{

this.webBrowser1.Url = new Uri("http://www.xxx.com");//指定url地址为百度首页 

}

二、方法二

强制webbrowser控件使用相应的IE内核

private enum IeVersion

{

强制ie10,//10001 (0x2711) Internet Explorer 10。网页以IE 10的标准模式展现,页面!DOCTYPE无效

标准ie10,//10000 (0x02710) Internet Explorer 10。在IE 10标准模式中按照网页上!DOCTYPE指令来显示网页。Internet Explorer 10 默认值。

强制ie9,//9999 (0x270F) Windows Internet Explorer 9. 强制IE9显示,忽略!DOCTYPE指令

标准ie9,//9000 (0x2328) Internet Explorer 9. Internet Explorer 9默认值,在IE9标准模式中按照网页上!DOCTYPE指令来显示网页。

强制ie8,//8888 (0x22B8) Internet Explorer 8,强制IE8标准模式显示,忽略!DOCTYPE指令

标准ie8,//8000 (0x1F40) Internet Explorer 8默认设置,在IE8标准模式中按照网页上!DOCTYPE指令展示网页

标准ie7//7000 (0x1B58) 使用WebBrowser Control控件的应用程序所使用的默认值,在IE7标准模式中按照网页上!DOCTYPE指令来展示网页

}

///

/// 设置WebBrowser的默认版本

///

/// IE版本

private void SetIE(IeVersion ver)

{

string productName = AppDomain.CurrentDomain.SetupInformation.ApplicationName;//获取程序名称

object version;

switch (ver)

{

case IeVersion.标准ie7:

version = 0x1B58;

break;

case IeVersion.标准ie8:

version = 0x1F40;

break;

case IeVersion.强制ie8:

version = 0x22B8;

break;

case IeVersion.标准ie9:

version = 0x2328;

break;

case IeVersion.强制ie9:

version = 0x270F;

break;

case IeVersion.标准ie10:

version = 0x02710;

break;

case IeVersion.强制ie10:

version = 0x2711;

break;

default:

version = 0x1F40;

break;

}

RegistryKey key = Registry.CurrentUser;

RegistryKey software =key.CreateSubKey( @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\" + productName);

if (software != null)

{

software.Close();

software.Dispose();

}

RegistryKey wwui = key.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);

//该项必须已存在

if (wwui != null) wwui.SetValue(productName, version, RegistryValueKind.DWord);

}

上述的代码,调用方法为:SetIE(IeVersion.强制ie9);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值