如何强制IE不使用兼容模式?

7

我已经在stackoverflow上查看了很多,发现以下是强制非兼容模式的最推荐方法:

<meta http-equiv="X-UA-Compatible" content="IE=edge" >

我的问题是这些答案都是IE 8和9时代的答案。是否仍然可以强制用户使用最新的浏览器?这是一个公共网站,我们的用户经常使用IE10、IE9、IE7和IE8(大致按照这个顺序)。是的,IE7的使用比IE8更普遍。我对IE8的唯一限制是网站可读性。这是一个现代化的网站,我希望用户使用的任何浏览器都不要处于兼容模式。我知道有一种方法可以指定浏览器版本,但我不想在下个月底的Win10发布前这样做。如果有人了解Windows 10对此行的处理方式,那将非常有用(新浏览器称为“Edge”)。感谢任何提供的帮助。-Chris C. PS:我在页面的第一行有以下内容(没有空格)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"

"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

1个回答

13

我在Internet Explorer和Microsoft Edge团队工作。

您提供的是x-ua-compat头/元标记。它被设计为一个临时解决方案,以帮助您前进并采用对现代浏览器的支持,而不必立即处理现代化的代码库。 它不是Web兼容性的长期解决方案。

给用户提供最理想的体验的最佳方法是首先使用HTML5 doctype:

<!DOCTYPE html>

这应该是您文档中的第一件事;在此之前不应有任何内容。从那时起,只需使用有效的标记。检查您的文档是否存在错误、不平衡的标记、多余的标记等。请记住定期验证您的标记

仅在您有无法立即替换/删除的旧代码时才使用x-ua-compat头/元标记。在这些情况下,可以将您的用户置于旧文档模式中:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

如果存在,上述代码将使浏览器进入Internet Explorer 9的Edge模式。在Internet Explorer 9之前的版本中,将使用最新的文档模式。

您还可以堆叠它们以显示优先级:

<meta http-equiv="X-UA-Compatible" content="IE=10,9,7,8" />

但请不要忘记我在这里的主要信息 - 上述方法仅是一个临时解决方案。最终目标是使用现代代码更新您的文档。

Microsoft Edge是Internet Explorer的后继者,不支持文档模式。Microsoft Edge将像Firefox和Chrome一样解释您的文档。


1
如果我们有一个使用IE11的用户,他们手动设置了我们网站的兼容模式,然后我们更新了网站并希望强制关闭该兼容性设置,那么怎么办呢?有没有办法做到这一点? - Worthy7
我发现只使用HTML5 doctype和所有有效的HTML会导致IE11将我置于与IE7兼容的模式下。 - Nacht
@Sampson开发工具 - Nacht
@Nacht,你能分享一个使用HTML5 doctype但以兼容模式渲染的页面吗?另外,这是在Windows 10、8.1还是7上的IE11? - Sampson
@Nacht 你是将那段代码复制/粘贴到文件中了吗?如果是的话,你可能在doctype之前得到了一些不可见字符。你能否在https://hexed.it中打开你的HTML文件并分享一个屏幕截图呢? - Sampson
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接