自从装了IE10以后,就发现好些个网站显示都不是那么的正常,网站上有些功能居然还会出现一些意想不到的BUG——原本就是针对IE开发的,如今IE下居然用不起来了,让用户情何以堪?可是就为少许用户使用的系统去大动干戈的调整功能,这实在是让人头疼!在通过一番折腾以后,居然找到一个很是M$的方法来解决 —— 强制高版本的IE浏览器用低地版本模式显示网页。html
就是直接让IE10默认以指定的IE版本的浏览器模式来运行,并用这个指定的版原本进行解析页面,在上一篇定义文档兼容性的文章中,咱们已经其实知道了浏览器模式和文档模式的区别,而且咱们经过修改X-UA-Compatible来修改了浏览器的文档模式。这个方法原本可以解决咱们当下的问题,但实际上,咱们不想让整个网站用IE8或者IE7来解析,咱们仅是想针对少数的几我的在核心的功能上使用IE8来处理。固然,咱们仍是可以使用页面上添加meta元素的 —— 但在这里,咱们寻求到另外的一个解决方案:因为使用核心功能的人群可控,而且数量少。所以直接控制IE,让高版本的浏览器(版本>=8)按照指定的低版本模式进行解析。方法是直接调整注册表项:web
1
2
3
4
5
|
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
或者
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
|
在FEATURE_BROWSER_EMULATION这个注册表项下添加一个DWORD的值,名称为:iexplore.exe
值为十进制的8888
或者8000
。保存后,从新打开IE浏览器(IE8或更高),你就会发现,浏览器此时使用的是IE8模式在进行浏览。windows
这个方法原本是用在解决那些使用了IE WebBrowser 控件的应用程序在须要特定的浏览器版本支持下的。既然如此,那么让咱们更进一步的了解下,在咱们的程序中若是使用了IE WebBrowser以后,应该如何指定浏览器版本。其实,若是有心,你能够打开上面两个注册表项的任意一个,说不定就能看到上面已经有一些值了,这些都是已经指定特定浏览器版本的程序。 好比我这里就有下面这些:浏览器
devenv.exe是VS2010的应用程序,在这里咱们能够看到,M$强制要求devenv.exe中使用的浏览器版本为IE9。既然他都这么用,天然而然,咱们也应该能从中找到解决问题的方法了。若是你在应用程序:SomeApplication.exe中使用了IE WebBrowser的控件,那么你若是想在SomeApplication.exe这个程序中的WebBrowser控件以某一个指定的版本的浏览器进行解析页面,你就能够在上述的那个注册表项中加入你的程序了。好比你要指定为IE8运行,那么你只要新建一个DWORD值,名称为SomeApplication.exe
,值为:8888
便可。asp.net
到此咱们已经会为浏览器和WebBrowser
控件指定特定的浏览器运行版本了,但可能你会发现,后面的数值有那么一些很差理解,那我要使用IE怎么办?一样IE8怎么会有8000和8888这样的数值呢,个表示什么?若是你也有疑问,那么请看下表吧,罗列出了经常使用的数值对照说明表:网站
值 | 说明 |
10001 (0x2711) | Internet Explorer 10。网页以IE 10的标准模式展示,页面!DOCTYPE无效 |
10000 (0x02710) | Internet Explorer 10。在IE 10标准模式中按照网页上!DOCTYPE指令来显示网页。Internet Explorer 10 默认值。 |
9999 (0x270F) | Windows Internet Explorer 9. 强制IE9显示,忽略!DOCTYPE指令 |
9000 (0x2328) | Internet Explorer 9. Internet Explorer 9默认值,在IE9标准模式中按照网页上!DOCTYPE指令来显示网页。 |
8888 (0x22B8) | Internet Explorer 8,强制IE8标准模式显示,忽略!DOCTYPE指令 |
8000 (0x1F40) | Internet Explorer 8默认设置,在IE8标准模式中按照网页上!DOCTYPE指令展现网页 |
7000 (0x1B58) | 使用WebBrowser Control控件的应用程序所使用的默认值,在IE7标准模式中按照网页上!DOCTYPE指令来展现网页。 |
注:this
1. 准模式指的是浏览器模式,而!DOCTYPE控制的是文档模式。spa
2. 应用程序中包含的WebBrowser Control控件时,默认WebBrowser使用的是IE7,这是个很重要的知识点。.net
好了,到此应该对于IE运行于指定版本的方法已经介绍完毕,同时本身程序中如何设置的方法也有了明确方向,接下来的事情就是——用起来吧。code
参考文档:Internet Feature Controls (B..C)