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

來源:互聯網
上載者:User

標籤:blog   http   使用   os   io   strong   for   ar   

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

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

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

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

註:

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

2. 應用程式中包含的WebBrowser Control控制項時,預設WebBrowser使用的是IE7,這是個很重要的知識點。

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

 

參考文檔: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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.