强制IE浏览器或WebBrowser控件使用指定版本显示网页

强制IE浏览器或WebBrowser控件使用指定版本显示网页

windows8 下面ie10的logo  自从装了IE10以后,就发现好些个网站显示都不是那么的正常,网站上有些功能居然还会出现一些意想不到的BUG——原本就是针对IE开发的,如今IE下居然用不起来了,让用户情何以堪?可是就为少许用户使用的系统去大动干戈的调整功能,这实在是让人头疼!在通过一番折腾以后,居然找到一个很是M$的方法来解决 —— 强制高版本的IE浏览器用低地版本模式显示网页。html

  就是直接让IE10默认以指定的IE版本的浏览器模式来运行,并用这个指定的版原本进行解析页面,在上一篇定义文档兼容性的文章中,咱们已经其实知道了浏览器模式文档模式的区别,而且咱们经过修改X-UA-Compatible来修改了浏览器的文档模式。这个方法原本可以解决咱们当下的问题,但实际上,咱们不想让整个网站用IE8或者IE7来解析,咱们仅是想针对少数的几我的在核心的功能上使用IE8来处理。固然,咱们仍是可以使用页面上添加meta元素的 —— 但在这里,咱们寻求到另外的一个解决方案:因为使用核心功能的人群可控,而且数量少。所以直接控制IE,让高版本的浏览器(版本>=8)按照指定的低版本模式进行解析。方法是直接调整注册表项:web

code
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以后,应该如何指定浏览器版本。其实,若是有心,你能够打开上面两个注册表项的任意一个,说不定就能看到上面已经有一些值了,这些都是已经指定特定浏览器版本的程序。 好比我这里就有下面这些:浏览器

在注册表为程序指定ie浏览器版本

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指令来展现网页。
FEATURE_BROWSER_EMULATION设置说明

注:this

1. 准模式指的是浏览器模式,而!DOCTYPE控制的是文档模式。spa

2. 应用程序中包含的WebBrowser Control控件时,默认WebBrowser使用的是IE7,这是个很重要的知识点。.net

好了,到此应该对于IE运行于指定版本的方法已经介绍完毕,同时本身程序中如何设置的方法也有了明确方向,接下来的事情就是——用起来吧。code

 

参考文档:Internet Feature Controls (B..C)

 

转自:http://blog.useasp.net/archive/2013/05/30/force-ie8-or-higher-or-webBrowser-control-use-specific-version-to-display-pages.aspx

相关文章
相关标签/搜索