簡體   English   中英

TWebBrowser和IE版本

[英]TWebBrowser and IE version

當我問這個問題時,我接受了回答 ,因為它是合理的,並且所指向的文檔是正確的。

使用TWebBrowser將具有IE6的計算機與具有相同編譯可執行文件的IE7的計算機進行測試,其行為確實如答案中所指出的。

現在,我再次對受質疑者表示懷疑,在一台裝有IE8的計算機中,該服務器將同一可執行文件標識為IE7。 我編寫了一個簡單的Rails應用程序,可以清晰地顯示用戶代理。 在同一台機器上,如果我在IE中訪問此rails應用程序,它將打印:

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)

當我使用該可執行文件訪問時:

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的classid是{8856F961-340A-11D0-A96B-00C04FD705A2},該文件夾在Windows注冊表中的名稱為“ Microsoft Web Browser”,並指向ieframe。 dll。

現在事情變得有些奇怪了。 如果我轉到system32 / ieframe.dll並檢查版本... 8.0。

我真的很困惑。 問題是:當我使用TWebBrowser時,確實會使用ie的最全版本?

謝謝。

它使用的是IE8,但處於IE7兼容模式。 IE小組在 2009年3月就此發表了博客 ,他們還描述了如何獲取IE8渲染而不是默認的IE7。

我還沒有看到有關IE9在這里的行為的任何信息,所以我不能說您是否需要一個不同的值來使用IE9渲染,或者是否還有其他值只是意味着“最新”並獲得IE8渲染。

也許TWebBrowser將創建時的Useragent保存在ControlData屬性中? 嘗試刪除該控件並將其重新添加到安裝了IE8.0的計算機上的表單中。

無論如何,這些用戶代理字符串看起來很奇怪。 無論打印什么,它都可能是相同的IE8.0引擎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM