WebBrowser控制IE 10文档标准模式

时间:2014-09-08 19:27:55

标签: c# .net winforms internet-explorer webbrowser-control

我有一个Windows Form C#应用程序,其中包含一个WebBrowserControl。应用程序的用户将在其计算机上安装IE 11。我需要强制他们使用IE 10文档标准模式。我知道我可以通过使用FEATURE_BROWSER_EMULATION来实现这一点,如下所述:http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation

问题是我能够使用10001和/或10000注册表值强制用户访问IE10。但是,我的文档模式设置不正确。我需要将其设置为文档标准模式。

我检查过,注册表值设置正确。我不知道在这一点上可以做些什么。有没有人有任何建议?

谢谢, Harit

2 个答案:

答案 0 :(得分:0)

无论doctype如何,您都希望使用代码10001强制IE 10。

您确定要根据系统类型设置Correct Reg Key值吗?对于32位或64位系统,密钥位于两个不同的位置。仔细检查并使用10001代码。

除了文档之外,无论IE 10模式中显示什么,都应该始终如此。

答案 1 :(得分:0)

后续步骤:-) 您是否正在使用强制兼容模式的旧版或第三方控件?有些人使用IE8之前的IE特定API来做这件事。

您使用的是某些浏览器特定的CSS黑客攻击吗?那些可以抛弃doctype。

您是否能够控制doctype并将doctype设置为控件中呈现的页面上的html标准?如果您使用标准的IE 10 doctype并仍然获得兼容模式?()

因为它是一个控件,我假设你没有条件注释,那些也可以抛弃它,所以如果你的代码确实有IE条件注释,它们可以填充doctype。

如果是这样,那么其他东西就是迫使浏览器进入兼容模式。我会开始删除第三方控件,或CSS文件,甚至包括Javascript文件,直到您获得正确的doctype并隔离将doctype置于错误模式的确切问题。

你可以通过渲染一个直接的html进行测试,正确设置doctype,来自你的exe的示例页面,没有外部链接或第三方控件,只是页面上的文本。这是否正确呈现?

只是一些提示可以隔离有问题的东西。