WebBrowser 控件的内核为IE 而默认为IE7
很多的网站不支持IE7(因为多数都有使用jq或者相关类库,还有就是能直接支持json,当然可以通过使用json2.js使其支持)
扯远了,怎么能使WebBrowser 正常打开网页 一下有两种方式
1.由前端同事配合(即自己家的网站),也就是让网站本身可以兼容IE7(如果你家前端不嫌弃的话) 这个涉及到前端知识 我这里并不多赘述 PS:前端是绝对可以使网站兼容IE7的 如果对方说不可能 那你可以怀疑一下他的水平(最好不要这样 避免关系闹僵 手动狗头)
2.则是通过 修改系统注册表 实现,这个方法也很简单
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 中新建一个项值 名称为 你的程序名称.exe 值的类型为 REG_DWORD 实际值可取一下 十进制(16进制)
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 我程序中 打开的ie浏览器使用的版本应该为IE9
注意:此方式只能生成exe后有效(VB6.0中调试的名称并不等于生成的,其他环境语言未测试 如有大神路过还望不吝赐教)
有人说有64和32的区别 以64位机器为例,因为32位程序在64位机器上访问注册表时会自动被转到32位地址,而不是真正的地址,所以使用这个就可以