我有一个应用程序,在某些情况下会导致IE8弹出兼容性消息并以compat模式重新加载:
显示问题导致internet explorer使用兼容性视图刷新网页。
据我所知,这是罕见的,而且不会因为元标签而发生。它是对改变DOM的用户操作的响应。这个问题与:https://superuser.com/questions/215281/how-do-i-stop-i-e-jumping-into-compatability-view相同,但我的问题是:是什么类型的事情导致了这种情况,作为修复它的一种帮助。
换句话说,请参阅这个站点thesitewizard.com,其中IE8中的第三个兼容模式被描述为:
有时,出于其他无法理解的、无文档的原因,在被验证为符合标准的页面上(或者,至少在候选版本1中会这样做)。
问题是:什么是无法理解的,无证的原因?
发布于 2012-01-28 19:31:09
经过一段漫长的调试过程(使用旧的学校警报来找出哪里失败了),这种看似无害的dom操作就是罪魁祸首:
document.getElementById("literal"+varValue).style.display = "none";这里没有错误,显然找到了元素(即,这不是一个花园品种的空指针)。
这是一个大规模的应用程序,在这段代码中发生了很多事情。我把它转到了以下几个方面,这显然防止了这个问题:
setTimeout(function(){
var layoutEl = document.getElementById("literal"+varValue);
if (layoutEl)
layoutEl.style.display = "none";
},10)发布于 2013-06-10 21:33:55
以下内容来自MSDN文章"控制默认呈现“。
请注意,某些条件(如此处列出的条件)可能会迫使Internet在与网页中指定的模式不同的文档兼容性模式中显示页面。
这些链接提供了其他信息,描述Internet Explorer如何确定网页的适当文档模式:
发布于 2014-09-03 16:57:45
我知道这是个老生常谈的问题,但我想我应该补充一下我刚刚遇到的一些问题。我遇到了一个问题,在兼容性模式是被迫的,我无法追踪的源代码。我手动地将页面从兼容性模式中取出,并注意到一些字符没有出现。它最后是一个项目符号列表,它在伪元素上使用了自定义字符:
li:before {
content: '\25B6';
}作为一个快速的解决方案,我最后只为IE覆盖了不到9:
.lt-ie9 li:before {
content: '';
}这篇文章给了我寻找处理不当的角色的想法。希望这有助于一些人,如果他们偶然发现了类似的问题!
https://stackoverflow.com/questions/9006845
复制相似问题