強制IE瀏覽器或WebBrowser控件使用指定版本顯示網頁


自從裝了IE10之后,就發現好些個網站顯示都不是那么的正常,網站上有些功能竟然還會出現一些意想不到的BUG——本來就是針對IE開發的,現在IE下竟然用不起來了,讓用戶情何以堪?但是就為少量用戶使用的系統去大動干戈的調整功能,這實在是讓人頭疼!在經過一番折騰之后,竟然找到一個非常M$的方法來解決 —— 強制高版本的IE瀏覽器用低地版本模式顯示網頁。

  就是直接讓IE10默認以指定的IE版本的瀏覽器模式來運行,並用這個指定的版本來進行解析頁面,在上一篇定義文檔兼容性的文章中,我們已經其實知道了瀏覽器模式文檔模式的 區別,並且我們通過修改X-UA-Compatible來修改了瀏覽器的文檔模式。這個方法本來能夠解決我們當下的問題,但實際上,我們不想讓整個網站用 IE8或者IE7來解析,我們僅是想針對少數的幾個人在核心的功能上使用IE8來處理。當然,我們還是能夠使用頁面上添加meta元素的 —— 但在這里,我們尋求到另外的一個解決方案:由於使用核心功能的人群可控,並且數量少。因此直接控制IE,讓高版本的瀏覽器(版本>=8)按照指定的 低版本模式進行解析。方法是直接調整注冊表項:

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模式在進行瀏覽。

  這個方法本來是用在解決那些使用了IE WebBrowser 控件的 應用程序在需要特定的瀏覽器版本支持下的。既然如此,那么讓我們更進一步的了解下,在我們的程序中如果使用了IE WebBrowser之后,應該如何指定瀏覽器版本。其實,如果有心,你可以打開上面兩個注冊表項的任意一個,說不定就能看到上面已經有一些值了,這些都 是已經指定特定瀏覽器版本的程序。 比如我這里就有下面這些:

在注冊表為程序指定ie瀏覽器版本

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指令來展示網頁。
FEATURE_BROWSER_EMULATION設置說明

注:

1. 准模式指的是瀏覽器模式,而!DOCTYPE控制的是文檔模式。

2. 應用程序中包含的WebBrowser Control控件時,默認WebBrowser使用的是IE7,這是個很重要的知識點。

好了,到此應該對於IE運行於指定版本的方法已經介紹完畢,同時自己程序中如何設置的方法也有了明確方向,接下來的事情就是——用起來吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM