首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TWebBrowser和IE版本

TWebBrowser和IE版本
EN

Stack Overflow用户
提问于 2010-09-29 20:42:28
回答 2查看 3.5K关注 0票数 4

当我问this question时,我接受了答案,因为它是有意义的,文档指向的是正确的。

使用TWebBrowser测试一台使用IE6的机器与另一台使用IE7的机器,使用相同的编译可执行文件,行为确实与答案中指出的一样。

现在我再一次让人怀疑,在一台安装了IE8的机器上,同样的可执行文件被服务器识别为IE7。我写了一个简单的rails应用程序来盗版用户代理,这一点很清楚。在同一台机器上,如果我在IE中访问这个rails应用程序,它会打印:

代码语言:javascript
复制
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)

当我使用该可执行文件访问时:

代码语言:javascript
复制
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)

此外,在朋友Process Monitor的帮助下,我意识到用来实例化TWebBrowser的分类in是{8856F961-340A-11D0-A96B-00C04FD705A2},它在windows注册表中的名称为"Microsoft Web Browser“,并指向ieframe.dll。

现在事情变得有点奇怪了。如果我转到system32/ieframe.dll并检查版本...8.0。

我真的很困惑。问题是:当我使用TWebBrowser时,会使用哪个版本的ie呢?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-29 22:08:37

它使用的是IE8,但处于IE7兼容模式。The IE team blogged about this在2009年3月,在那里他们还描述了如何获得IE8渲染而不是IE7默认渲染。

我还没有看到任何关于IE9在这里的行为,所以我不能说你是否需要一个不同的值来使用IE9呈现,或者是否有一些其他的值,简单地说是“最新的”,并且也获得了IE8呈现。

票数 7
EN

Stack Overflow用户

发布于 2010-09-29 22:02:40

也许TWebBrowser在ControlData属性中保存了创建时拥有的Useragent?请尝试在安装了IE8.0的计算机上删除控件并将其重新添加到窗体中。

在任何情况下,这些用户代理字符串看起来都奇怪地相似。它可能是相同的IE8.0引擎,不管它打印什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3821648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档