單位作業中使用多個WEB系統,各自對IE瀏覽器版本有不同的需求,有要求IE11的,有要求IE9的,甚至還有要求IE8的。為了便于使用,想做一個自定義瀏覽器,在瀏覽器中允許用戶動態選擇所需的版本號。
VS系統默認webbrower適應IE7,目前只知道通過改寫注冊表可以調整webbrower控制元件所模擬的ie版本號。現在問題是,我不知道系統是在什么時候根據注冊表資訊來確定webbrower控制元件所模擬的ie版本號,是在用戶的EXE一開始運行就確定了還是說在定義了webbrower控制元件實體后才確定?不得而知。
請教大家:
1、能否實作在同一系統的不同winform中分別定義不同的ie版本號?
2、系統是在什么階段通過注冊表確定IE版本號?
3、能否通過在實體化某一winform表單之前修改注冊表來實作控制其中的webbrower控制元件的IE版本號?
4、各位高人是否還有其他方法?
uj5u.com熱心網友回復:
通過自己反復測驗,證實了在注冊表中修改鍵值,該程式運行后,所有該程式用到的WEBBROWSER控制元件所模擬的ie版本號都是一樣的,在程式運行期間,無論你通過regedit修改該注冊表為其他版本號鍵值,模擬的版本號都不再變化,只有重新啟動該程式,新的鍵值才會起作用,也就是說在同一個exe程式中,無法動態改變webbrowser所模擬的ie版本號。附注冊表對應版本號鍵值
'修改注冊表,以讓webbrower適應IE瀏覽器的不同版本兼容模式
32X HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
64X HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
'標準模式指的是瀏覽器模式,而!DOCTYPE控制的是檔案模式,系統默認為IE7檔案模式顯示7000。
'11001(0x2EDF)Internet Explorer 11。網頁以IE11標準模式顯示,與DOCTYPE指令無關
'11000(0x2AF8):Internet Explorer 11。包含基于標準的DOCTYPE指令的網頁以IE9檔案模式顯示
'10001(0x2AF7):Internet Explorer 10。網頁以IE10標準模式顯示, 與DOCTYPE指令無關。
'10000(0x2710):Internet Explorer 10。包含基于標準的DOCTYPE指令的網頁以IE9檔案模式顯示。
'9999(0x270F):Internet Explorer 9。網頁以IE9標準模式顯示, 與DOCTYPE指令無關
'9000(0x2328):Internet Explorer 9。包含基于標準的DOCTYPE指令的網頁以IE9檔案模式顯示。
'8888(0x22B8):網頁以IE8標準模式顯示, 與DOCTYPE指令無關
'8000(0x1F40):包含基于標準的DOCTYPE指令的網頁以IE8檔案模式顯示。
'7000(0x1B58):包含基于標準的DOCTYPE指令的網頁以IE7檔案模式顯示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/38158.html
標籤:VB.NET
