強制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

相關文章
相關標籤/搜索