为什么IE9在我的网站上切换到兼容模式?
-
03-10-2019 - |
题
我刚刚安装了IE9 beta,在我创建的特定站点(HTML5)IE9跳到兼容模式上,除非我手动告诉它不这样做。我尝试删除网站的几个部分,但没有更改。包括删除所有CSS包括。在我的其他网站上,一切都很好。
另外,不要手动设置它,因为这样的IE9记住了用户设置,并且您无法将其转回自动(或者至少我还没有找到如何,甚至没有通过私人浏览和清空缓存)
反正。跳到兼容模式的网站: http://alliancesatwar.com/guide/
它使得正确的地方: http://geuze.name/basement/ (我不能发布超过1个超链接)
两者都使用相同 doctype
和所有。这些站点使用相同的基本模板(编码,元标记,Doctype和相同的JavaScript)有很多共同点(外观)
如果有人对我有答案,那就太好了!在IE7模式中呈现的HTML5网站很la脚。
解决方案
在IE9 DocumentMode中为我工作。
没有 X-UA-Compatible
标题/meta设置明确的文档模式,您将获得基于以下方式的模式:
- 用户是否在该域中单击了“兼容性视图”按钮;
- 也许还因为网站上的其他内容导致IE8/9的渲染器崩溃并落回旧渲染器而自动发生。
- 默认情况下,用户是否选择将所有站点置于兼容性视图中;
- IE是否认为该网站在您的Intranet上,因此默认为兼容性视图;
- 所讨论的网站是否位于微软自己的网站列表中,需要兼容视图。
您可以从IE菜单从“工具 - >兼容性查看设置”更改这些设置。当然,该菜单现在被隐藏了,因此您在按Alt之前不会看到它。
作为网站作者,如果您有信心您的网站符合标准(在其他浏览器中很好地渲染,并使用功能弹头来决定要使用的浏览器解决方法),我建议使用:
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
或HTTP标头:
X-UA-Compatible: IE=Edge
为了获得最新的渲染器,无论使用什么IE版本。
其他提示
我放
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
之后的第一件事
<head>
(我在某个地方读过,我不记得)
我不敢相信它确实有效!
要强制IE以IE9标准模式渲染,您应该使用
<meta http-equiv="X-UA-Compatible" content="IE=edge">
某些条件可能导致IE9跳入兼容模式。默认情况下,这可能会在Intranet站点上发生。
我已经在单独的stackoverflow线程上发布了此评论,但认为值得在这里重复:
对于我们的内部ASP.NET应用程序,在网页上,Web.config或代码范围内添加“ X-UA兼容”标签是完全没有区别的。
这 只要 对我们有用的事情是在IE8中手动关闭此设置:
(叹。)
IE8和IE9在Intranet站点上似乎只发生了这个问题。外部网站将正常工作并使用正确的IE8/9版本,但是对于内部网站,IE9突然决定它实际上是IE7,并且没有任何HTML 5支持。
不,我也不了解这种逻辑。
我的不情愿解决方案是 测试 浏览器是否具有HTML 5支持(通过创建画布,并测试是否有效),并在用户无效时向用户显示此消息:
它不是特别友好地友好,但是让用户关闭这种烦人的设置似乎是让他们正确运行内部HTML 5 Web应用程序的唯一方法。
或让用户使用Chrome。 ;-)
网站位于 http://www.html-5.com/index.html 确实具有X-UA兼容的元标记,但仍然可以兼容视图,如地址栏中的“撕裂页面”图标所示。您如何获得强迫IE 9(最终版本9.0.8112.16421)的菜单选项以在标准模式下渲染页面?我尝试右键单击该撕裂页面图标以及“ Alt”键技巧,以显示Rene Geuze提到的其他菜单选项,但这些选项不起作用。
作为在更现代的网站上的一边,如果您按样板上的HTML标签上使用条件语句,则由于某种原因,这将导致IE9默认为兼容模式。这里的修复是将您的条件语句从HTML标签中移出,并将其添加到身体标签中,换句话说,将其从头部部分中删除。这样,您仍然可以在样式表中使用这些类来定位较旧的浏览器。
对我来说很好:
您确定您没有在全球设置上或其他设置吗?这是Windows 7上Beta的干净安装。开发人员工具报告页面默认为IE9标准模式。
我最近不得不解决这个问题,这是我所做的:
首先,此解决方案是围绕Tuning Apache服务器。
第二个主要认为IE9中有一个错误,这意味着元标记将不起作用,而不是此解决方案尝试