【发布时间】:2012-06-05 23:35:40
【问题描述】:
问题:
我正在运行一个带有嵌入式 WebBrowser 控件的 winforms 应用程序。我使用魔法注册表设置将此控件切换到 IE 8 模式(如在此处回答 Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?)。
但是现在,如果我导航到包含 Meta 标签 X-UA-Compatible IE=9(截至http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx)的网站,我的网络浏览器控件将切换到 IE9 模式并忽略注册表设置。
我希望我的控件保持在 IE8 模式...
我的解决方案尝试
我尝试使用 IHTMLDOMNode.removeChild 在控件加载 (Document_complete) 后删除元标记,但该控件不会重新呈现页面。
我尝试手动加载 HTML 内容(使用 WebClient),删除元标记并将其提供给 webbrowser 控件(使用 Document.Write 或 DocumentText),但这样控件拒绝加载任何其他内容(喜欢图片)。
帮助
现在,我没有编写自己的 HTTPProxy 并在途中修改响应的想法(我不想这样做)。
有人有什么想法吗?
我使用的是 .Net 4,我无法更改将要显示的网站,并且无论 X-UA-Compatible 标签如何,我都需要它以 IE8 模式呈现...
谢谢!
【问题讨论】:
-
只是出于好奇,您为什么希望它在 IE8 中呈现?
-
您可以在我的个人资料中找到提示 :-)
-
好吧,我知道了,我们用的是IE tester,也许你能从那里得到一些提示,不知道是不是开源的。
-
X-UA-Compatible 会覆盖兼容性视图设置,这意味着您只能通过删除 FEATURE_BROWSER_EMULATION 来忽略 X-UA-Compatible 并返回 IE7 模式。当然,如果您运行一个删除 X-UA-Compatible 标头的 http 代理,那就是另一回事了...
-
您是否尝试过将元数据设置为不同的东西,而不是删除它?
标签: c# .net webbrowser-control