WebBrowser和IE实际安装的版本并不同步。 有些网站用IE9打开显示不正常,那是因为IE9以上版本使用的技术较新,而网站使用的技术较旧,未能及时同步更新到支持IE9;相反,如果网站使用的技术较新,而浏览器的版本太低,浏览也可能显示不正常或报错。 从IE8开始,首次引入一个兼容性视图功能,IE9,IE10中也都支持。只要一点击兼容性视图就可以兼容旧版本浏览器的网站,这个兼容模式就是IE7的模式。
Foxtable窗口中的WebBrowser与IE到底是什么关系?
WebBrowser是封装的API,调用的是本机的IE浏览器,本机的IE和WebBrowser的设置用很多不同,为了应用程序的稳定性,WebBrowser没必要使用本地IE的新功能,如果确认是相对安全的,可以用代码进行内部设置优化。这就意味着,webbrowser默认运行在IE7 mode下,除非去主动改变它。
WebBrowser是否使用IE内核?
要使用WebBrowser必须安装IE,怎么可能使用IE的功能而不用安装IE呢?
如何改变Webbrowser的渲染模式和IE版本?
IE8及后续版本已经显著升级了IE渲染引擎,使其更加兼容CSS和HTML,IE9的CSS支持和基本的HTML5支持是一个很大的改进,Web浏览器控件使用了一些IE内部的渲染技术,默认情况下,它是采用的IE7的渲染模式。幸运的是,从Internet explorer 8开始,通过注册表设置解决了这个问题。您可以指定一个注册表项(FEATURE_BROWSER_EMULATION)来指定某个应用程序应该使用哪种渲染模式和IE版本。设置不是全局性的,必须为每个应用程序单独设置。
32位和64位应用程序注册表键值不同:
32 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
64 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
FEATURE_BROWSER_EMULATION设置说明
值(10进制) IE版本 说明 10001 (0x2711) Internet Explorer 10 网页以IE 10的标准模式展现,页面!DOCTYPE无效 10000 (0x02710) Internet Explorer 10 在IE10标准模式中按照网页上!DOCTYPE指令来显示网页,默认值 9999 (0x270F) 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指令展示网页
修改案例
现象:我的电脑安装的是64位IE10,foxtable中的Webbrowser控件会访问百度地图,访问时显示脚本错误,用本机IE10访问没有错误。
操作:按以下步骤修改注册表后恢复正常。
1. 记事本中输入以下内容
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"foxtable.exe"=dword:00002710
2.保存文件,文件名任意,扩展名.re
3。双击导入注册表。 原文连接: WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下? - BobLiu - 博客园 (cnblogs.com)
[此贴子已经被作者于2021/10/27 22:26:20编辑过]