我们正在使用基于ASP.NET构建的第三方内容管理系统。这些页面似乎在IE11上以IE9模式显示。我使用MS IE10 compat检查器工具http://blogs.msdn.com/b/ie/archive/2012/01/20/ie10-compat-inspector.aspx来尝试找出在IE10或Edge模式下页面未显示的原因。 (我尝试使用的HTML5功能应该在IE10或11中显示。)该工具提供的唯一警告是关于使用window.navigator
进行浏览器嗅探的Javascript。
使用window.navigator
的代码位于名为webresource.axd的文件中:
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
它本身似乎是ASP.NET的一部分。
没有javascript警告或错误。这是其中一个页面: https://secure.wycliffe.org.uk/NetCommunity/SSLPage.aspx?pid=283。这适用于Windows Server 2003上的IIS6。
这可能是IE9模式问题的原因吗? (我在文档的顶部有<!DOCTYPE html>
。)
MS自己的工具是否真的在抱怨自己软件中的不良做法?
答案 0 :(得分:1)
X-UA-Compatible
标头向下发送页面,告诉Internet Explorer使用IE9模式。
要查看它,请在IE10中打开https://secure.wycliffe.org.uk/NetCommunity/SSLPage.aspx?pid=283,然后按F12以显示开发人员工具。切换到“网络”选项卡,按“开始”并刷新页面。加载后,双击第一个项目,然后切换到Response Headers选项卡。
您应该在其中看到标题:X-UA-Compatible
:IE=9
。
要强制IE使用最新的渲染模式,请进入IIS配置,找到它的应用位置,然后将其删除,或将其更改为较新版本,例如: IE=10
。或者,IE=edge
将始终使用最新版本的标准模式渲染引擎。但请注意,这可能是有原因的!我们不得不在过去使用该标头作为传统.net应用程序中IE10问题的短期解决方法。
有关详细信息,请参阅MSDN: Defining document compatibility。