自從裝了IE10之后,就發現好些個網站顯示都不是那么的正常,網站上有些功能竟然還會出現一些意想不到的BUG——本來就是針對IE開發的,現在IE下竟然用不起來了,讓用戶情何以堪?但是就為少量用戶使用的系統去大動干戈的調整功能,這實在是讓人頭疼!在經過一番折騰之后,竟然找到一個非常M$的方法來解決 —— 強制高版本的IE瀏覽器用低地版本模式顯示網頁。
就是直接讓IE10默認以指定的IE版本的瀏覽器模式來運行,並用這個指定的版本來進行解析頁面,在上一篇定義文檔兼容性的文章中,我們已經其實知道了瀏覽器模式和文檔模式的 區別,並且我們通過修改X-UA-Compatible來修改了瀏覽器的文檔模式。這個方法本來能夠解決我們當下的問題,但實際上,我們不想讓整個網站用 IE8或者IE7來解析,我們僅是想針對少數的幾個人在核心的功能上使用IE8來處理。當然,我們還是能夠使用頁面上添加meta元素的 —— 但在這里,我們尋求到另外的一個解決方案:由於使用核心功能的人群可控,並且數量少。因此直接控制IE,讓高版本的瀏覽器(版本>=8)按照指定的 低版本模式進行解析。方法是直接調整注冊表項:
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模式在進行瀏覽。
這個方法本來是用在解決那些使用了IE WebBrowser 控件的 應用程序在需要特定的瀏覽器版本支持下的。既然如此,那么讓我們更進一步的了解下,在我們的程序中如果使用了IE WebBrowser之后,應該如何指定瀏覽器版本。其實,如果有心,你可以打開上面兩個注冊表項的任意一個,說不定就能看到上面已經有一些值了,這些都 是已經指定特定瀏覽器版本的程序。 比如我這里就有下面這些:
devenv.exe是VS2010的應用程序,在這里我們可以看到,M$強制要求devenv.exe中使用的瀏覽器版本為IE9。既然他都這么 用,自然而然,我們也應該能從中找到解決問題的方法了。如果你在應用程序:SomeApplication.exe中使用了IE WebBrowser的控件,那么你如果想在SomeApplication.exe這個程序中的WebBrowser控件以某一個指定的版本的瀏覽器進 行解析頁面,你就可以在上述的那個注冊表項中加入你的程序了。比如你要指定為IE8運行,那么你只要新建一個DWORD值,名稱為SomeApplication.exe
,值為:8888
即可。
到此我們已經會為瀏覽器和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指令來展示網頁。 |
注:
1. 准模式指的是瀏覽器模式,而!DOCTYPE控制的是文檔模式。
2. 應用程序中包含的WebBrowser Control控件時,默認WebBrowser使用的是IE7,這是個很重要的知識點。
好了,到此應該對於IE運行於指定版本的方法已經介紹完畢,同時自己程序中如何設置的方法也有了明確方向,接下來的事情就是——用起來吧。