自從裝了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)