1

我遇到了多个关于使用元标记更改 Internet Explorer 的呈现模式/版本的博客,因为 IE9 或 10 是多个浏览器的组合。

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

但对我来说,这个标签似乎只在完整的 Internet Explorer 浏览器中有效,但在 .net 浏览器控制中无效。我的观察是否正确?

我必须覆盖浏览器控件选择的默认浏览器版本(从 7 到 8)。更改/添加注册表参数不是一种选择。

4

2 回答 2

2

仅当这是该部分中的<head>第一个元素时,此元标记才能正常工作。

于 2013-09-10T16:29:41.447 回答
1

如果您X-UA-Compatible通过 META 标记或 HTTP 响应标头指定值,文档模式将更改为指定的值,就像在桌面 IE 中一样。

与使用 F12 开发人员工具更改浏览器模式不同,文档模式不会影响User-Agent发送到服务器的字符串。在完全修补的 IE 版本中,该X-UA-Compatible设置确实会影响属性中User-Agent显示为 JavaScript 的内容,但如果使用 F12 开发人员工具更改navigator.userAgent该设置,该值将保持不变。document mode

X-UA-Compatible您可以通过查看来探索发送结果

http://webdbg.com/ua.aspx

http://webdbg.com/ua9.aspx

第一页没有指定文档模式(因此获取默认值),而后者指定文档模式为 IE9。如果单击Document mode链接,您可以看到文档的模式对X-UA-Compatible指令敏感,即使请求标头中的 User-Agent 未更改。

相反,要更改应用程序中 Web Browser 控件的浏览器模式,您必须设置FEATURE_BROWSER_EMULATION注册表项,指定可执行文件的名称和所需的模式。

客户要求“不得更改注册表”是愚蠢的。可以合理地说:“我们不希望任何会影响 IE 或其他程序的注册表操作。” 考虑到运行可执行文件的行为会导致注册表更改,因此说:“我们根本不想要任何注册表操作”是不合理的。

于 2013-09-11T15:44:23.100 回答