我在VB.Net 2008中开发了Web浏览器并升级到visual studio 2013.升级之前Web浏览器100%工作,但升级后错误来自于在Youtube中搜索的内容,如下所示。
https://www.youtube.com/results?search_query=cricket+highlights
Google抱歉......
我们很抱歉...... ...但您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们现在无法处理您的请求。 有关详细信息,请参阅Google帮助。
Youtube搜索结果在Internet Explorer,Chrome,Firefox中正常运行,但在我的网络浏览器中无效。
如何解决这个问题我坚持这一点。
答案 0 :(得分:0)
最后我得到了解决方案.............
Web浏览器控件 - 默认情况下 - 永久停留在IE 7渲染模式下。尽管我们现在已经升级到IE 11和一个合理的HTML5兼容浏览器,但Web浏览器控件总是默认使用IE 7渲染引擎。这是因为ActiveX控件的原始版本使用了这种模式,并且为了向后兼容性,Control继续这种过时且非常HTML5不友好的默认值。
无论您是在WPF应用程序中使用Web浏览器控件,还是在使用ActiveX控件的WinForms应用程序中,这都适用。在幕后,所有这些UI平台都使用相同的COM接口,因此您仍然坚持使用相同的规则。
好消息是有几种方法可以覆盖默认的渲染行为:
使用IE X-UA兼容的Meta标头使用特定于应用程序的
FEATURE_BROWSER_EMULATION注册表项
HTML修复;
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
... other headers
</head>
<body>
... content
</body>
</html>
通过注册表;
转到64位或32位计算机的HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION。
或者在64位系统上转到32位的HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION(如果你拥有它们,那么将密钥添加到这两个位置都没有坏处。如果你没有拥有它们,你可以自己制作文件夹。
创建一个新的DWORD键,并将其命名为应用程序的名称,例如“myapp.exe”然后编辑密钥的值。您可以添加许多不同的值,具体取决于您要模拟的IE版本。我输入11001(十进制值 - 十六进制中的0x2AF9),它模拟IE 11(更多值位于:http://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx#browser_emulation)。
如果您像我一样使用Visual Studio,您会发现此方法可能无法正常工作。但是,它确实有效。您需要使用资源管理器或终端手动打开.exe文件,而不是在Visual Studio上运行该项目。
如果您希望在Visual Studio上运行该程序,请考虑添加“myapp.vshost.exe”的密钥,因为它用于调试。
我希望这可以帮助任何有关您的Web浏览器的任何问题的人使用错误的IE版本作为包装器或功能无法按预期工作。