1

我在我的winforms应用程序中使用WebBrowser控件和Smooth Div Scroll来呈现html选框。我下载了样品,并添加脚本在dotnet WebBrowser控件中运行速度较慢

autoScrollingInterval: 3 

$("div#makeMeScrollable").smoothDivScroll({ 
    autoScrollingMode: "onStart" 
}); 

,使其移动速度更快。当我在IE中打开示例时,它工作得很好,但是当我使用WebBrowser控件并调用导航方法时,滚动器移动速度要慢得多。

是什么导致了这个问题?

回答

12

据我所知,你正在处理的问题是在IE 7标准模式下WebBrowser Control呈现的版本问题,而你在IE中使用的实际WebBrowser是IE 8或IE 9,并且它在那里工作,但你的JQuery/JavaScript或CSS包含在IE 7中不起作用。

让我直接告诉你。 默认的渲染引擎webbrowser控件是固定的,以确保所有的 平台兼容。

基本上,如果您安装的浏览器是IE 7 - IE 9,那么使用的 渲染引擎仅仅是IE 7.0(默认情况下)。

但是,如果您安装的IE版本是IE 6或更低版本,那么所用的渲染引擎是IE 4.0(而不是开玩笑),除非您自己设置了它,否则它会被设置为 。

WebBrowser控件使用当前安装的任何 (当前IE版本),但这不是真的,因为他们这样做是为了减少向后兼容性问题。您可以在您的普通浏览器中看到 (作为证明),这确实是您的问题,因为您需要在您的普通浏览器中登录 www.whatsmyuseragent.com,然后在您的WebBrowser控件中再次登录 该网站,您会看到它说 表示MSIE 7.0 :)。

你可以将其设置为使用互联网 资源管理器的当前安装的版本,无论是使用网页META标记,或者机器,其中WebBrowser控件将运行在编辑注册表 (编辑为 CURRENT_USER和LOCAL_MACHINE会两个工作)。

WebBrowser控件将(通常)使用您安装的任何版本的IE,但是出于兼容性原因,它默认会在IE7标准模式下呈现页面 。

如果你想利用新的IE9的功能,你应该添加 meta标签<meta http-equiv="X-UA-Compatible" content="IE=9" > 你的HTML页面的<head>标签内。

这个元标记必须在任何链接到CSS添加,JavaScript的 文件等,同时也是在<head>正常工作,但(仅 其他<meta>标签或<title>标签前,可以来)。

另一种方法是一个注册表项添加到:

HKLM> SOFTWARE>微软> Internet Explorer中>首页> FeatureControl> FEATURE_BROWSER_EMULATION

,并在那里加入 'YourCompiledApplicationName.exe'值为'9000'至 强制WebBrowser控件以IE9模式显示页面。虽然 还有其他值也可以使用,请注意,这些文档 并不完全准确,因为无论使用哪种值,似乎都无法使页面 以IE 8模式呈现。 (注意:YourCompiledApplicationName.exe必须是您编译的EXE文件名,其中包含您的WebBrowser控件,它只适用于包含在注册表中的文件名)。此外,它不会伤害添加vshost.exe和YourCompiledApplicationName.exe.svchost所以它通过您的IDE运行时,并且,如果您的应用程序在64位Windows下运行,您可能还应该在以下注册表路径下设置以下DWORD相同的值(每32位路径):

HK [LM | CU] \ SOFTWARE \ Wow6432Node \微软\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION

添加注册表项在HKCU而不是HKLM 也将工作 - 这是写给HKLM需要管理员 作为HKCU没有的特权。

不知道当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 IE 11 & IE 14之间的IE浏览器。这只是 推测他们过去所做的事情。

有关您可以设置注册表的值的更多信息,check this out:

+0

感谢您的详细解答。我会检查它并发布结果。 – reticent

+0

浏览器仿真值参考@ http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx –