WebBrowser Control IE8 Compatibility Mode On/Off Switch

余生长醉 提交于 2019-12-19 03:23:26

问题


I am having a IE8 compatibility issue while using the WebBrowser control to navigate to a website. The strange thing is sometimes the website works, but more than likely it wont. I can refresh the page sometimes and it works as well.

Just going to the page in IE8 I experienced the same CSS rendering problems so I switched to compatibility mode and it refreshed and rendered correctly.

Is there a way to simulate this effect for the WebBrowser control. I want to be able to click a button and toggle the modes off and on like you can do in Internet Explorer.

Is this possible? If so, anyone know how?

Thanks


回答1:


Would this post on IEBlog about WebBrowser rendering modes and IE8 help? Seems like you have to set the rendering mode specific to your application using a key in the registry.




回答2:


I know the registry entry answer has been posted, so I thought I'd offer an alternative.

Do you own the site and have permissions for the server it runs on? If so, you can set the X-UA-Compatible header to be sent for every page on the site/server. See http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#Servers for information plus links for Apache/IIS7.




回答3:


You can force rendering mode for embedded WebBrowser inside your application using "Internet Feature Controls" in IE registry keys:

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     YouApp.exe = (DWORD) 00000000 (see value below)
  • Value 9999 (0x270F)
    Windows Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive.

  • Value 9000 (0x2328)
    Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

  • Value 8888 (0x22B8)
    Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.

  • 8000 (0x1F40)
    Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

  • 7000 (0x1B58)
    Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.

+1 if you find value to always run WebBrowser at currently installed version.

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



来源:https://stackoverflow.com/questions/2055271/webbrowser-control-ie8-compatibility-mode-on-off-switch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!