Web 浏览器控件在应用程序中使用时,通常需要特定的兼容性设置来支持网页内容的呈现。 FEATURE_BROWSER_EMULATION 是一个注册表设置,允许开发人员控制 Web 浏览器控件使用的浏览器模式。但是,为此功能设置的某些值可能会导致仿真问题。
用户遇到了将 FEATURE_BROWSER_EMULATION 设置为 IE10 或 IE11 值导致 Web 浏览器控件出现故障的情况。具体来说,Dojo Toolkit 日历演示站点上的月份日期选择器停止运行。在没有任何 FEATURE_BROWSER_EMULATION 设置或设置为 IE9 仿真时,该控件可以正常工作。
通过禁用 FEATURE_NINPUT_LEGACY_MODE 注册表设置以及 WebBrowser 控件的优化和增强,解决了该问题。以下是已实施更改的详细检查:
以下代码示例演示了如何在 C# 中设置这些注册表值:
<code class="c#">const string FEATURE_BROWSER_EMULATION = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\"; Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_BROWSER_EMULATION", appName, GetBrowserEmulationMode(), RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_AJAX_CONNECTIONEVENTS", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_GPU_RENDERING", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_WEBOC_DOCUMENT_ZOOM", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_NINPUT_LEGACYMODE", appName, 0, RegistryValueKind.DWord);</code>
以上是为什么将 FEATURE_BROWSER_EMULATION 设置为 IE10 或 IE11 会导致 Web 浏览器控制故障?的详细内容。更多信息请关注PHP中文网其他相关文章!