【发布时间】:2011-09-23 12:40:30
【问题描述】:
我对 IE8 如何确定文档模式有点迷茫。我有矛盾。
设置
这是我网站上生成的网页标题的样子,请注意文档类型:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head">
<meta id="IE8" http-equiv="X-UA-Compatible" content="IE=8" />
...
我正在使用 meta http-equiv 设置为 X-UA-Compatible 来强制它以“标准模式”呈现,因为这个网站已经制作完成所以。该网站位于公司 LAN (10.1.x.x) 中的另一台机器上。
到目前为止一切正常,但我在兼容性设置窗口中遇到了问题:
结果:
当兼容性设置中没有检查并列出任何内容时,用户代理是:
Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;.NET4.0C; .NET4.0E) [好的]
仅选中“在兼容性视图中显示所有网站”时:
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;.NET4.0C; .NET4.0E) [连贯但未预期]
仅选中“在兼容性视图中显示 Intranet 站点”时:
Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;.NET4.0C; .NET4.0E) [不行]
当 URL 被添加到“您已添加到兼容性视图中的网站”列表中时:
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;.NET4.0C; .NET4.0E) [连贯但未预期]
根据下面的IE blog entry 图,如果元标记 X-UA-Compatible 为 present 且值为 IE=8,则渲染器设置为“ 标准模式”。 如前所述,情况并非如此。 Meta 始终是 IE=8,但用户代理发生了变化。 该图负责 X-UA-Compatible 元检查后的兼容性视图设置。就我而言,情况正好相反。 图错了吗?
问题:
为什么选中“在兼容性视图中显示 Intranet 站点”时用户代理是 msie 8.0?! (是不是因为我的meta?http://10.1.x.x/真的算是内网网站吗?)
为什么选中“在兼容性视图中显示所有网站”时用户代理是 msie 7.0? (这会覆盖我的元数据?但不是根据图表)
为什么将站点添加到兼容性列表时,用户代理是 msie 7.0?
根据图表,我的文档类型属于“几乎标准模式”类别。 似乎有更好的元来强制 IE8 标准模式,但根据文档类型:
<meta id="IE8" http-equiv="X-UA-Compatible" content="**IE=EmulateIE8**" />
是使用它更好,还是我目前正在使用的那个更好(强制 IE=8)? 似乎几乎标准模式正是标准模式,在表格中呈现图像时有细微的变化,好的,但是......我应该选择哪一个?
然后图表再次提到“IE=Emulate8”,但this article 谈到“IE=EmulateIE8”,似乎后者是正确的版本according to the documentation of http-equiv。
有没有办法检测(客户端/网络)IE 是处于“几乎标准模式”还是“标准模式”?
几个值得一提的链接:
http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
http://msdn.microsoft.com/en-us/library/ms533876(VS.85).aspx
http://msdn.microsoft.com/fr-fr/library/cc288325(VS.85).aspx
http://blog.strictly-software.com/2009/03/detecting-ie-8-compatibility-modes-with.html
http://phrogz.net/ie8-intranet-compatibility-view
http://hsivonen.iki.fi/doctype/ -> http://hsivonen.iki.fi/doctype/ie8-mode.png
javascript:alert(navigator.userAgent) javascript:alert(document.compatMode); javascript:alert(document.documentMode);【问题讨论】:
标签: internet-explorer-8 user-agent ie8-compatibility-mode