我们在Java应用程序中使用嵌入式SWT浏览器。SWT浏览器包装了一个IE8 WebBrowser控件对象。我遇到了众所周知的问题,即默认情况下,WebBrowser控件使用IE7模式而不是IE8模式。(请参见http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx)
根据这篇和其他文章,我正在尝试为我的应用程序设置FEATURE_BROWSER_EMULATION注册表值,以便浏览器默认为IE8模式,但我取得了不同的成功。将其设置为值为8000的IE8标准模式不起作用,但将其设置为值为8888的“强制”IE8标准模式可以。
我通过在SWT浏览器中加载页面,然后执行JavaScript来测试此功能。
如果键值不存在或为8000,则结果为7。如果键值为8888,则结果为8。我正在测试的URL是http://stackoverflow.com,其中包括以下内容。
根据这篇和其他文章,我正在尝试为我的应用程序设置FEATURE_BROWSER_EMULATION注册表值,以便浏览器默认为IE8模式,但我取得了不同的成功。将其设置为值为8000的IE8标准模式不起作用,但将其设置为值为8888的“强制”IE8标准模式可以。
我通过在SWT浏览器中加载页面,然后执行JavaScript来测试此功能。
browser.execute("alert(document.documentMode);");
如果键值不存在或为8000,则结果为7。如果键值为8888,则结果为8。我正在测试的URL是http://stackoverflow.com,其中包括以下内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
有人知道我做错了什么吗?
HKEY_LOCAL_MACHINE
,您需要权限,因此最好在安装程序步骤中执行此操作或者在运行时使用HKEY_CURRENT_USER
。如果您想将仿真模式设置为使用最高可用版本,则可以从\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\svcVersion
(或Version
)获取最高系统浏览器版本(不确定类似99999
的东西是否会实现这一点)。 - Beejor