Web浏览器控件IE8兼容模式开/关开关

时间:2010-01-13 08:09:40

标签: c# css internet-explorer-8 webbrowser-control compatibility-mode

使用WebBrowser控件导航到网站时,我遇到了IE8兼容性问题。奇怪的是有时网站有效,但很可能不会。我有时可以刷新页面,也可以。

刚进入IE8中的页面我遇到了相同的CSS渲染问题,所以我切换到兼容模式并刷新并正确呈现。

有没有办法为WebBrowser控件模拟此效果。我希望能够像在Internet Explorer中一样关闭按钮并关闭和打开模式。

这可能吗?如果是这样,任何人都知道如何?

由于

3 个答案:

答案 0 :(得分:4)

this post on IEBlog关于WebBrowser渲染模式和IE8会有帮助吗?似乎您必须使用注册表中的密钥设置特定于您的应用程序的呈现模式。

答案 1 :(得分:4)

我知道注册表项的答案已经发布,所以我想我会提供另一种选择。

您是否拥有该网站并拥有运行它的服务器的权限?如果是这样,您可以为站点/服务器上的每个页面设置要发送的X-UA-Compatible标头。有关信息以及Apache / IIS7的链接,请参阅http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#Servers

答案 2 :(得分:0)

您可以使用IE注册表项中的“Internet功能控件”强制在应用程序中嵌入WebBrowser的呈现模式:

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     YouApp.exe = (DWORD) 00000000 (see value below)
  • 价值9999(0x270F)
    Windows Internet Explorer 9.无论使用何种!DOCTYPE指令,网页都以IE9标准模式显示。

  • 值9000(0x2328)
    Internet Explorer 9.包含基于标准的网页页面!DOCTYPE指令以IE9模式显示。

  • 值8888(0x22B8)
    无论是什么!DOCTYPE指令,网页都以IE8标准模式显示。

  • 8000(0x1F40)
    包含基于标准的网页页面!DOCTYPE指令以IE8模式显示。

  • 7000(0x1B58)
    包含基于标准的DOCTPE指令的网页以IE7标准模式显示。

如果您发现值始终以当前安装的版本运行WebBrowser,则

+1。

来源:http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation