WebBrowser 控件的內(nèi)核為IE 而默認(rèn)為IE7
很多的網(wǎng)站不支持IE7(因?yàn)槎鄶?shù)都有使用jq或者相關(guān)類庫(kù),還有就是能直接支持json,當(dāng)然可以通過(guò)使用json2.js使其支持)
扯遠(yuǎn)了,怎么能使WebBrowser 正常打開(kāi)網(wǎng)頁(yè) 一下有兩種方式
1.由前端同事配合(即自己家的網(wǎng)站),也就是讓網(wǎng)站本身可以兼容IE7(如果你家前端不嫌棄的話)? 這個(gè)涉及到前端知識(shí) 我這里并不多贅述 PS:前端是絕對(duì)可以使網(wǎng)站兼容IE7的? 如果對(duì)方說(shuō)不可能? 那你可以懷疑一下他的水平(最好不要這樣 避免關(guān)系鬧僵? 手動(dòng)狗頭)
2.則是通過(guò) 修改系統(tǒng)注冊(cè)表 實(shí)現(xiàn),這個(gè)方法也很簡(jiǎn)單?
在?HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 中新建一個(gè)項(xiàng)值? 名稱為 你的程序名稱.exe 值的類型為 REG_DWORD 實(shí)際值可取一下? 十進(jìn)制(16進(jìn)制)
10000(0×2710) IE10
9999 (0x270F) IE9 忽略html5
9000 (0×2328) IE9
8888 (0x22B8) IE8 忽略html5
8000 (0x1F40) IE8
7000 (0x1B58) IE7
例如將?WebBrowser? 改為IE9(代碼為VB6.0)
Dim objshell As Object
?Set objshell = CreateObject("wscript.shell")
?Call objshell.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\MAIN\FeatureControl\FEATURE_BROWSER_E
MULATON\" & App.EXEName & ".exe", "9000", "REG_DWORD")
Set objshell = Nothing
這種方式可以理解為 告訴windows 我程序中 打開(kāi)的ie瀏覽器使用的版本應(yīng)該為IE9?
注意:此方式只能生成exe后有效(VB6.0中調(diào)試的名稱并不等于生成的,其他環(huán)境語(yǔ)言未測(cè)試 如有大神路過(guò)還望不吝賜教)
有人說(shuō)有64和32的區(qū)別? 以64位機(jī)器為例,因?yàn)?2位程序在64位機(jī)器上訪問(wèn)注冊(cè)表時(shí)會(huì)自動(dòng)被轉(zhuǎn)到32位地址,而不是真正的地址,所以使用這個(gè)就可以