修改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 条评论
登录 后参与评论

相关文章

来自专栏游戏杂谈

libuv在cocos2d-x中的使用

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

1603
来自专栏Spark学习技巧

Kafka源码系列之使用要点总结及重要错误解决

1,创建一个topic bin/kafka-topics.sh --create --zookeeper localhost:2181 --replicatio...

2176
来自专栏张善友的专栏

REST 入门介绍

dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中...

2128
来自专栏喵了个咪的博客空间

PhalApi视频教程

##PhalApi视频教程 先在这里感谢以下录制小组的同学,是你们让世界看到PhalApi的视频教程! A西瓜妹子、听风不语、彩色的雨、Catch、喵了个咪、d...

3527
来自专栏ChaMd5安全团队

众测备忘手册

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

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

.NET 中的轻量级线程安全

2018-01-14 12:46

952
来自专栏Java帮帮-微信公众号-技术文章全总结

Java企业面试——SSM框架

SpringMvc简单介绍下你对springMVC的理解? Spring MVC Framework有这样一些特点: 它是基于组件技术的.全部的应用对象,无...

4175
来自专栏达观数据

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

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

3986
来自专栏Albert陈凯

2018-02-08 JAVA程序员必用JAR包

缺少经验的程序员往往可能想到自己去写个工具类来处理,这个想法当然是没有错的,但我们应尽可能去利用那些成熟的第三方库,来提高我们开发效率的同时保证代码性能与稳定!...

3125
来自专栏Linyb极客之路

Java常用日志框架介绍

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

1671

扫码关注云+社区