如何以编程方式关闭 IE8 WebBrowser 控件中的怪异模式?
题
我想在 C# 应用程序中使用 IE8 作为 WebBrowser 控件。如何禁用“怪异模式”并强制 IE 符合标准(就其实施而言)?
解决方案
我想你所面临的问题的 IEBlog:web浏览器控件渲染模式在IE8 :
虽然网站管理员可以容易地改变 他们的网站在正确呈现 IE的新版本中,许多软件 厂商所不具备的资源 即刻推出的新版本 它们与更新的应用程序 内部网页。 为了确保这些现有的 应用程序仍然处于正常工作状态, 的 IE8呈现的网页中运行的 在web浏览器控件的实例 IE7标准模式默认强>
在这里我要指出的是,网页上的评论说,以上是不正确的,即“ 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
控制。
其他提示
如果你不想使用注册表关键技术,可以插入以下标记:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
“内容”属性力呈现在各种模式。
请注意发生了一些变化公测以来,注册表项已被重命名等的更多此处。
这具有实际的代码来编程做到这一点,可处理高达IE11到目前为止: