1

我发现 IE8 会根据浏览器模式以不同方式呈现网页,尽管文档模式始终设置为相同。这是IE8的错误吗?

背景是:

  • IE8(SOE 的一部分)正在查看的企业 Intranet。
  • 在兼容性设置中勾选以兼容模式显示 Intranet 站点。
  • 我通过使用元标记方法为我的 Intranet 页面强制使用文档模式:<meta http-equiv="X-UA-Compatible" content="IE=edge" />
  • 这导致浏览器模式设置为 IE8 Compat,文档模式设置为 IE8 标准。

到目前为止,这一切都很好,没有任何问题,我期望的页面布局等等。

就在最近添加了一些功能(我不会在这个阶段说什么 - 问题是关于页面呈现模式)并且页面布局不正确。在开发人员工具栏中将浏览器模式更改为 IE8(或在兼容性视图设置中取消勾选)修复了布局问题。这让我感到惊讶,因为文档模式没有改变。

因此,重新限制组合:

  • Broswer Mode=IE8 Compat, Document Mode=IE8 Standards [破碎的]
  • Broswer Mode=IE8, Document Mode=IE8 Standards [作品]

文档模式是一样的,唯一改变的是浏览器模式。我认为文档模式是唯一会影响页面渲染的东西,而浏览器模式基本上只会影响请求中发送的 UA 字符串。我是对的,还是我错了?如果我是正确的,那么一旦确定了文档模式,那么浏览器模式应该对渲染完全没有影响。这是IE8中的错误吗?还是我错了?即使使用相同的文档模式,浏览器模式是否会影响渲染?

限制:

  • 我无法控制在我们所有用户的兼容性视图设置中取消勾选在兼容性视图中显示 Intranets(公司 Intranet,我们有其他旧版应用程序,太多测试以确保它们都在标准模式下工作,永远不会获得批准制作该类型全球变化)。
  • 我没有为所有用户升级浏览器的选项。我们刚刚完成了从 IE6 到 IE8 的 6 个多月的项目升级。
4

1 回答 1

0

我意识到这是一个非常古老的问题,但如果它可以帮助任何人:

根据对问题IE8 browser mode vs document mode的回答,浏览器模式确实“只是”设置了 User-Agent 字符串。但是,由于在评估 IE 条件注释时使用此值,如果 (a) 任何代码直接针对 UA 字符串进行测试,或者 (b) 代码中有 IE 条件注释,浏览器模式可能会对呈现产生影响。

IE8 Compat 的浏览器模式通常会评估为 UA 字符串MSIE 7.0,因此,如果您有任何条件注释检查if lt IE8,例如,这可能是您的问题的根源。

于 2015-07-06T08:48:07.777 回答