如何将FEATURE_BROWSER_EMULATION设置为IE8模式?

ghi*_*orn 6 browser webbrowser-control internet-explorer-8

我们在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来测试它

browser.execute("alert(document.documentMode);");
Run Code Online (Sandbox Code Playgroud)

如果键值不存在或者为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">
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

Kam*_*lak 6

首先检查此解决方案:

关于 IE9 WebBrowser 控件

如果它不满足您的需要,这里是注册表解决方案


要在 IE11 标准模式下运行 WebBrowser 控件,请在注册表中使用以下新值:

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 11000 (Hex: 0x2af8)
Run Code Online (Sandbox Code Playgroud)

要在 IE10 标准模式下运行 WebBrowser 控件,请在注册表中使用以下新值:

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 10000 (Hex: 0x2710)
Run Code Online (Sandbox Code Playgroud)

要在 IE9 标准模式下运行 WebBrowser 控件,请在注册表中使用以下新值:

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 9000 (Hex: 0x2328)
Run Code Online (Sandbox Code Playgroud)

要在 IE8 标准模式下运行 WebBrowser 控件,请在注册表中使用以下新值:

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 8000 (Hex: 0x1F40)
Run Code Online (Sandbox Code Playgroud)

要在 IE7 标准模式下运行,请使用以下注册表值:

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 7000 (Hex: 0x1B58)
Run Code Online (Sandbox Code Playgroud)


小智 5

  1. HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
  2. 添加了您的进程名称,然后将DWORD值设置为9999


小智 1

检查独立 IE 中的兼容性视图设置(工具 > 兼容性视图设置)。您的页面是否列在“要在兼容性视图列表中显示的网站”中,或者是否选中了“在兼容性视图中显示所有网站”框?将 reg 值设置为 8000 后,Web 浏览器控件仍遵循兼容性视图设置。