有些网站,特别是那些喜欢HTML 5和诸如此类的网站,会验证您正在使用的浏览器,并给您一些警告信息,例如:“如果您的网络浏览器不是,请警告您使用未经测试的浏览器”在他们的小白名单中。
可悲的是,这些网站不会将IE控件识别为Internet Explorer浏览器,因此有时会显示不必要的警告/错误
我是否有任何可行的方法让我的webbrowser控件显示为Internet Explorer 9而不是实际显示的内容,这样如果网站已经测试了Internet Explorer 9的功能,它将不会显示任何错误
谢谢!
答案 0 :(得分:2)
默认情况下,WebBrowser控件被检测为IE7,看到这一点 - 尝试导航到“我的用户代理是什么”:
WebBrowser1.Navigate("http://www.whatsmyuseragent.com/")
更改此方法的最简单方法是将其他浏览器的用户代理作为“导航”方法的最后一个参数传递。在普通IE9中打开http://www.whatsmyuseragent.com/,复制显示的字符串并将其用作参数,例如:
WebBrowser1.Navigate("http://www.whatsmyuseragent.com/", Nothing, Nothing, "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)")
答案 1 :(得分:1)
您遇到的问题是,默认情况下,IE Web浏览器控件在旧版兼容模式下运行。要解决此问题,请为您的流程设置Feature_Browser_Emulation
(如果您的项目是针对 AnyCPU 进行编译,请确保同时写入32位和64位注册表项。有关详细信息,请参阅webbrowser using ie10 c# winform。
如果您想发送不同的用户代理字符串(这些网站会确定您使用的浏览器版本),则需要使用此处讨论的URLMon API UrlMkSetSessionOption
:http://blogs.msdn.com/b/ieinternals/archive/2009/10/08/extending-the-user-agent-string-problems-and-alternatives.aspx