我遇到了多个关于使用元标记更改 Internet Explorer 的呈现模式/版本的博客,因为 IE9 或 10 是多个浏览器的组合。
<meta http-equiv="X-UA-Compatible" content="IE=Edge"
>
但对我来说,这个标签似乎只在完整的 Internet Explorer 浏览器中有效,但在 .net 浏览器控制中无效。我的观察是否正确?
我必须覆盖浏览器控件选择的默认浏览器版本(从 7 到 8)。更改/添加注册表参数不是一种选择。
我遇到了多个关于使用元标记更改 Internet Explorer 的呈现模式/版本的博客,因为 IE9 或 10 是多个浏览器的组合。
<meta http-equiv="X-UA-Compatible" content="IE=Edge"
>
但对我来说,这个标签似乎只在完整的 Internet Explorer 浏览器中有效,但在 .net 浏览器控制中无效。我的观察是否正确?
我必须覆盖浏览器控件选择的默认浏览器版本(从 7 到 8)。更改/添加注册表参数不是一种选择。
仅当这是该部分中的<head>
第一个元素时,此元标记才能正常工作。
如果您X-UA-Compatible
通过 META 标记或 HTTP 响应标头指定值,文档模式将更改为指定的值,就像在桌面 IE 中一样。
与使用 F12 开发人员工具更改浏览器模式不同,文档模式不会影响User-Agent
发送到服务器的字符串。在完全修补的 IE 版本中,该X-UA-Compatible
设置确实会影响属性中User-Agent
显示为 JavaScript 的内容,但如果使用 F12 开发人员工具更改navigator.userAgent
该设置,该值将保持不变。document mode
X-UA-Compatible
您可以通过查看来探索发送结果
和
第一页没有指定文档模式(因此获取默认值),而后者指定文档模式为 IE9。如果单击Document mode链接,您可以看到文档的模式对X-UA-Compatible
指令敏感,即使请求标头中的 User-Agent 未更改。
相反,要更改应用程序中 Web Browser 控件的浏览器模式,您必须设置FEATURE_BROWSER_EMULATION
注册表项,指定可执行文件的名称和所需的模式。
客户要求“不得更改注册表”是愚蠢的。可以合理地说:“我们不希望任何会影响 IE 或其他程序的注册表操作。” 考虑到运行可执行文件的行为会导致注册表更改,因此说:“我们根本不想要任何注册表操作”是不合理的。