如何强制所有版本的IE兼容模式?

Paw*_*lai 7 internet-explorer cross-browser

我的项目支持IE8到IE10.我们尝试使用标准代码并支持所有IE版本的标准模式.

我们使用以下命令强制IE以最新模式打开:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,我们需要强制IE以兼容模式打开网站.就像用户在IE10中打开网站一样,它应该在IE10兼容模式下打开.当用户在IE9中打开网站时,它应该在IE9中打开IE9的兼容性等等.

这甚至可以强制兼容模式,或者我们只能强制文档模式而不是浏览器的兼容模式?

如果可能,是否有可能为所有IE版本都有一个通用语句,而不是IE版本特定的语法,如在链接时给出IE8到IE7仿真:强制IE8进入IE7兼容模式

Fre*_*k.L 10

兼容模式旨在帮助用户使用不是最新的旧产品.绝不应该帮助开发人员避免他可能发现的问题.

除非您完全没有选择(例如像SharePoint这样的依赖性损坏......)或者想要暴露严重缺乏能力,否则您不应强迫用户以兼容模式查看您的页面.

如果您需要支持所有IE版本,您必须了解每个版本的工作原理并了解每个版本的差异,以便生成一个代码,无论版本如何,都可以产生相同的输出.

如果掌握"糟糕的版本"(例如IE6及更旧版本)的想法对你来说听起来真的很糟糕,我建议你建立一个阈值,专注于与一些旧版本的兼容性,而不是所有版本.


编辑:但如果你真的需要强制兼容模式,你可以使用"X-UA兼容"元标记.例如:

<meta http-equiv="X-UA-Compatible" content="IE=9" />
Run Code Online (Sandbox Code Playgroud)

  • downvote是对帖子态度的回应.我在SharePoint网站上工作,并且在IE11中编辑页面时,SharePoint有一个导致重大问题的错误(不是在IE10,9或8中......不在chrome或firefox中).我无法更改SharePoint的源代码,因此我需要强制用户进入兼容模式,直到有问题的补丁."缺乏能力"声明让我感到困惑.侮辱人民不是获得投票的方式. (10认同)
  • @Pawan几个星期前,我们发现了一个提交,整个文本的行为是"在IE8中修复___和___,强制IE7兼容,直到我们能够以正确的方式修复它",从IE8发布时开始.那个元标记仍然存在,并且它是必需的,因此IE 8-11不会破坏旧页面,这限制了我们现在可以做的事情 - 因为删除兼容模式太多工作太多了.所以,请遵循以下建议:以正确的方式修复_now_. (3认同)