在开发者模式打开的情况下,我访问网站A,并看到该文档模式设置为Edge(默认)。当关注该站点上的链接到站点B时,我看到IE自动将文档模式降级为5(!),从而破坏了站点。此外,不再可能将文档模式更改为10或9(它位于站点A),而只有5,6,7和边缘可用。
站点B在头部设置了此标记:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
Internet Explorer没有站点B的可复合模式设置。
我完全迷失在这里,是什么原因可能导致IE降级其文档模式?
答案 0 :(得分:0)
我觉得这可能是<!DOCTYPE>
问题。使用IE 11文档模式被视为已弃用,Microsoft正在使用<!DOCTYPE>
呈现页面。
如果某个网站具有以下<!DOCTYPE>
声明,则它将以标准模式呈现:
HTML 4.0及更高版本
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
带或不带系统标识符的XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
未知
<!DOCTYPE html>
如果某个站点具有以下<!DOCTYPE>
声明,则它将以“几乎标准”模式呈现(IE7中的标准模式):
XHTML Transitional或Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhmlt1-transitional.dtd">
带有系统标识符的HTML 4.0或HTML 4.01 Transitional或Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
如果网站具有以下<!DOCTYPE>
声明,则它将以Quirks模式(也称为IE 5)呈现:
HTML 4及更低版本,或没有DOCTYPE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
无
如果站点B没有doctype或者最后一个列表中的一个,它将以Quirks模式呈现,该模式等于IE 5.