修改winform中WebBrowser调用的IE版本

最近在开发一个程序,为了方便,C#+winform开发使用了WebBroswer组件,发现了一个问题:

默认情况下,VS编译出的程序,WebBroswer是调用的IE兼容性视图,兼容性视图下,所有网站基本上是相当于使用IE7访问的效果,结果JS很多地方都报错。

查了一下资料,在以下位置修改注册表:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

以及

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

这几个位置,创建名为你的应用程序名的DWORD键,键值为十进制的11000,程序就会改用IE11调用了(前提是你的机器上要有IE11),这里的数字代表比较多的含义,最前面的数字是IE的版本,后面如果是00,则是标准模式,如果有别的数字,表示兼容性视图的意思。

有人说,改了注册表之后,只有直接运行程序时,才会调用IE11内核,否则还是IE7兼容性视图模式,经过我测试,并没有这样的情况,在VS2017下,Debug模式和直接运行生成的exe效果是一样的。

另外,请注意自己本地的IE浏览器,不要将目标网站加入的“兼容性视图”,否则,WebBroswer也会将它加入兼容性视图,即使你用了11000代码,也没用。

IE各版本的值如下:

11001 (0x2EDF) Internet Explorer 11. Webpages are displayed in IE11 Standards mode, regardless of the !DOCTYPE directive

11000 (0x2AF8) :Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode

10000 (0x2710) :Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. 10001 (0x2AF7) :Internet Explorer 10. Webpages are displayed in IE10 Standards mode, regardless of the !DOCTYPE directive.

9999 (0x270F) :Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive.

9000 (0x2328) :Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

8888 (0x22B8) :Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.

8000 (0x1F40) :Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

7000 (0x1B58) :Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

Java常用日志框架介绍

看了上面的介绍是否会觉得比较混乱,这些日志框架之间有什么异同,都是由谁在维护? 下文会逐一介绍。

2361
来自专栏微信公众号:Java团长

Java常用日志框架介绍

看了上面的介绍是否会觉得比较混乱,这些日志框架之间有什么异同,都是由谁在维护? 下文会逐一介绍。

1472
来自专栏ChaMd5安全团队

众测备忘手册

众测备忘手册 From ChaMd5安全团队核心成员 MoonFish 前言 最近一直在看bugbountyforum对赏金猎人采访的文章以及一些分享姿势的PP...

61110
来自专栏walterlv - 吕毅的博客

.NET 中的轻量级线程安全

2018-01-14 12:46

1492
来自专栏熊二哥

服务保障框架-Hystrix快速入门

祝大家国庆快乐! 对大部分电商和快递公司来说,每年年底(Q4季度)由于双11等大促活动的存在,将面对大量的用户流量,尤其是属于大促的那几天,无论是用户的商品订...

1751
来自专栏JackieZheng

学习SpringMVC——从HelloWorld开始

前言:   时隔十二年,中国女排最终过关斩将,用3:1的成绩证明了自己的实力,霸气夺冠,为中国赢得了一枚意义非常的金牌。这是一次全民的狂欢,一场视听盛宴,带给我...

2207
来自专栏高性能服务器开发

libevent源码深度剖析二 Reactor模式

(1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使...

2482
来自专栏游戏杂谈

libuv在cocos2d-x中的使用

libuv经过Node.js的实践和应用,已经证明非常之成熟,本来之前项目用的是这个:clsocket https://github.com/DFHack/cl...

2373
来自专栏FreeBuf

判断是否支持Heartbeat的NSE脚本

服务端支持heartbeat是存在heartbleed漏洞的必要条件,如果判断出某SSL端口不支持heartbeat,那基本上就可以排除风险了。 在SSL握手...

1967
来自专栏达观数据

技术干货 | 搜索那点事儿:Lucene文件存储和读取技术详解

作者简介 ---- 刘光敏: 达观数据搜索组研发技术人员,负责搜索引擎架构的设计和研发,搜索集群健康状况监控模块的开发及维护等。 ---- Lucene是一个...

4216

扫码关注云+社区

领取腾讯云代金券