【问题标题】:WebBrowser Control IE8 Compatibility Mode On/Off SwitchWebBrowser Control IE8 兼容模式开/关开关
【发布时间】:2011-01-04 13:04:50
【问题描述】:

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

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

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

这可能吗?如果是这样,有人知道怎么做吗?

谢谢

【问题讨论】:

  • 更好的是,我认为另一种解决方案是编辑注册表以运行 IE7 而不是完全运行 IE8。

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


【解决方案1】:

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

【讨论】:

  • +1 我只是在输入这个提示栏时弹出来加载 1 个新答案!
  • 非常感谢。我需要找到解决此问题的方法并找到此问题,以及您指向 IEBlog 帖子的链接。现在我已经解决了这个问题!
【解决方案2】:

我知道注册表项的答案已经发布,所以我想我会提供一个替代方案。

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

【讨论】:

  • 感谢您的建议,但我正在寻找更动态的解决方案。
  • 我无法让注册表选项正常工作,但这工作正常。
【解决方案3】:

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

HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER
   软件
      微软
         IE浏览器
            主要的
               功能控制
                  FEATURE_BROWSER_EMULATION
                     YouApp.exe = (DWORD) 00000000(见下面的值)
  • 值 9999 (0x270F)
    Windows Internet Explorer 9。网页以 IE9 标准模式显示,与 !DOCTYPE 指令无关。

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

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

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

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

+1 如果您发现始终以当前安装的版本运行 WebBrowser 的价值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2010-10-22
    • 2011-03-15
    • 2014-07-02
    • 2010-11-07
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多