如何以编程方式关闭IE8 WebBrowser控件中的怪癖模式?

我想在C#应用程序中使用IE8作为WebBrowser控件。 如何禁用“怪癖模式”并强制IE符合标准(就其实施而言)?

我认为你所面临的问题在IEBlog中描述:IE8中的WebBrowser控件渲染模式 :

虽然网站管理员可以轻松地改变他们的网站以在新版本的IE中正确呈现,但许多软件供应商没有资源立即用更新的内部页面推出新版本的应用程序。 为了确保这些现有应用程序保持正常工作状态, IE8默认情况下在IE7标准模式下呈现在WebBrowser控件实例内运行的页面。

在这里,我应该注意页面上的注释说上面的内容不正确,并且“ IE8默认情况下在IE7严格模式或Quirks模式下呈现在WebBrowser控件实例中运行的页面,具体取决于页面的doctype。”

解决方案如下:

当可执行文件加载WebBrowser控件的实例时,它会扫描注册表以检查可执行文件是否需要IE7标准或IE8标准模式。

要在IE8标准模式下运行,请插入以下注册表值:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]

"MyApplication.exe"=dword:13880

在这两个实例中,应将MyApplication.exe替换为将在指定模式下运行WebBrowser控件的可执行文件的名称。

因此,听起来“编程”解决方案是在注册表中写一个密钥,说明您希望在特定应用程序中使用IE8标准模式进行WebBrowser控件。

如果您不想使用注册表项技术,可以插入以下标记:

“content”属性强制以各种模式进行渲染。

我听到的最后一个是IE8 默认使用标准模式 。 您是否看到了最新测试版的实际问题? 你确定它在怪癖模式下渲染开始,没有用户明确点击兼容性视图按钮吗?

请注意,自测试版以来已经有一些更改,注册表项已重命名等。请在此处阅读更多内容 。

这有实际代码以编程方式执行此操作并处理到目前为止IE11:

C#webbrowser Ajax调用