我正在以Winforms形式托管MSIE。不幸的是,它坚持在兼容模式下运行,无论我是否给它提供一个以独立IE的IE8模式运行的页面。这样做的效果是,在独立的MSIE中正确呈现的某些内容在托管控件中完全误导并弄乱了。

除了文档类型等,还有一些神奇的方法告诉WebBrowser我希望它以与我将其加载到独立的MSIE中相同的方式渲染页面?

我不想使用注册表密码覆盖( http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx )由于我的表格是另一个应用程序加载项的一部分。我不想更改主应用程序的IE行为,也不想将其更改为在该应用程序下运行的其他附加组件。我只希望它在托管的浏览器中工作 我的 形式,不在应用范围内,也不是整个过程。

有帮助吗?

解决方案

我没有测试过,但是使用 标签,以及 http-equiv 属性,设置 X-UA-COMPATIBLE 价值为 IE=8, ,指示Web浏览器以IE 8标准模式显示页面。一个例子是:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

从以下行中 文章 看来这应该起作用。

默认情况下,除非该页面包含适当的X-UA兼容标头,否则在IE7模式下托管WebBrowser Control Open Standard的应用程序。您可以通过将应用程序可执行文件的名称添加到功能_BROWSER_EMULATION功能控制密钥并相应地设置该值来更改此操作。

其他提示

要更改应用程序中运行的Web浏览器控件的默认行为以匹配IE本身的功能,您必须设置 feature_browser_emulation 功能控制密钥。

例如,您可以模仿IE8的行为(允许站点以IE8标准模式渲染),如下所示。

里面 HKEY_LOCAL_MACHINE SOFTWORD MICROSOFT Internet Explorer Main farmaturecontrol

创建一个名称的新键 feature_browser_emulation

在该键内,添加一个带有值的新reg_dword 8000 用您的应用程序的可执行文件的名称。例如:

"YourApp.exe" = dword 8000 (Hex: 0x1F40)

更多详细信息是:http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top