1
11
据我所知,您正在处理的问题是IE 7标准模式下WebBrowser控件渲染的版本控制问题,而您在IE中使用的实际WebBrowser是IE 8或IE 9,它在那里工作,但您的JQuery/JavaScript或CSS包含在IE 7中不起作用。 让我直截了当地告诉你。上的默认渲染引擎 web浏览器控件已修复,以确保所有控件之间的兼容性 平台。 基本上,如果你安装的浏览器是IE 7-IE 9,那么 所使用的渲染引擎仅为IE 7.0(默认情况下)。 但是,如果您安装的IE版本是IE 6或更低,则 使用的渲染引擎是IE 4.0(不是开玩笑),除非你 否则设置。 有一种误解认为WebBrowser控件使用的是 当前已安装(当前IE版本),但这不是真的,因为 他们这样做是为了减少向后兼容性问题。你可以看到 (作为证据)这确实是你的问题 在您的普通浏览器中访问www.whatsmyuseragen.com,然后转到 该网站再次出现在您的WebBrowser控件中,您将看到它 说MSIE 7.0:)。 您可以将其设置为使用当前安装的internet版本 资源管理器,在页面中使用META标记,或编辑注册表 在运行webbrowser控件的计算机上(编辑 Current_User和Local_Machine都将工作)。 WebBrowser控件将(通常)使用任何版本的IE 已安装,但出于兼容性原因,它将呈现页面 默认情况下处于IE7标准模式。
如果你想利用IE9的新功能,你应该添加
元标记
此元标记必须添加在任何指向CSS、JavaScript的链接之前
文件等也在您的
另一种选择是将注册表项添加到:
在其中添加值为“9000”的“YourCompiledApplicationName.exe” 强制WebBrowser控件以IE9模式显示页面。虽然 还有其他值也可以使用,请注意这些文档 不完全准确,因为似乎不可能获得页面 以IE 8模式渲染您使用的任何值。(注意:YourCompiledApplicationName.exe必须是您编译的包含WebBrowser控件的exe文件名,它仅适用于您已包含在注册表中的文件名)。此外,添加vshost.exe和YourCompiledApplicationName.exe.svchost也不会有什么坏处,这样它在通过IDE运行时就可以工作,而且,如果你的应用程序在64位Windows下运行,你可能还应该将以下注册表路径下的DWORD设置为相同的值(根据32位路径):
将注册表项添加到HKCU中的同一路径,而不是HKLM 也会起作用-这很有用,因为写入HKLM需要管理员 香港中文大学没有的特权。 不确定当IE 10.0出现时,如果WebBrowser控件 默认发动机将转到10.0(如果10.0安装在的系统上 当然),或者即使在IE 10.0之后它仍将保持为IE 7.0 一旦发布,我们将拭目以待。然而,如果我们 根据之前的经验,我猜测IE 10.0将是 使用IE 7.0渲染引擎的最后一个版本,以及当IE 11出现时 默认渲染引擎将保留为IE 11 IE 11&即14。这只是猜测 推断他们过去的所作所为。 有关可以将注册表设置为的值的更多信息, check this out: |
Fyer-Zero · 使用SVG更新webbrowser内容 6 年前 |
Cyrill · 是否有可能解决网站上没有ID的元素? 6 年前 |
ChrisB · C#Windows。形式。WebBrowser缩放 7 年前 |
Cole Perrault · webbrowser自动导航事件 7 年前 |
amrik · 是否可以在外部网络浏览器中打开谷歌地图url? 7 年前 |