我想在C#应用程序中使用IE8作为WebBrowser控件。如何禁用“怪癖模式”并强制IE符合标准(就其实施而言)?
答案 0 :(得分:25)
如果您不想使用注册表项技术,可以插入以下标记:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
“content”属性强制以各种模式呈现。
答案 1 :(得分:14)
我认为您面临的问题在IEBlog: WebBrowser Control Rendering Modes in IE8:
中有所描述虽然网站管理员可以轻易改变 他们的网站在正确呈现 新版IE,很多软件 供应商没有资源 立即推出新版本 他们的应用程序更新 内部页面。 为了确保这些存在 应用程序保持正常运行状态 IE8呈现在其中运行的页面 WebBrowser控件的实例 默认情况下为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控件 指定的模式。
因此,听起来“编程”解决方案是在注册表中写一个密钥,说明您希望在特定应用程序中使用WebBrowser
控件的IE8标准模式。
答案 2 :(得分:4)
我听到的最后一点是IE8会使用standards mode by default。您是否看到最新测试版的实际问题?你确定它是以怪癖模式渲染开始的,没有用户明确点击compatibility view button吗?
答案 3 :(得分:3)
请注意自测试版以来发生了一些变化,注册表项已重命名等。Read more here。
答案 4 :(得分:0)
这有实际的代码以编程方式执行此操作并处理到目前为止的IE11: