好吧,很抱歉在这里直言不讳,但在过去的 2 年里,我一直在 IE 8 和 IE9 上进行开发,但似乎无法做到这一点。我在 abhor 公司工作并为他们的网站开发。由于某些原因,IE8 或 IE9 默认为较低的文档模式,如 ie7 或 ie8。我什么都试过了...
1) 放置 HTML 5 文档类型,仅此而已。根据微软的说法,这应该足够了 2) 将html5 doctype 和x-ua-compatible meta 标记放在页面标题下的第一个位置,并分别设置为edge 或IE8 或IE9。
我的页面是这样的
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7">
<![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt- ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <! [endif]-->
<!--[if gt IE 8]> <html class="no-js"> <! [endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这真的令人沮丧,因为我读到的所有内容都说它应该有效。微软声称这会起作用,甚至只是设置 HTML 5 文档类型也会起作用。我听说要设置一个 http header 来修复,但老实说,Microsoft 是认真的吗?我发现很难相信开发人员需要更改他们的 apache 设置以添加 http header 来使页面呈现我是标准模式
有人可以帮我吗?我错过了什么???我真的越来越讨厌微软了!!!!!
更新::
我最近发现我的公司勾选了“在兼容性 View 中显示 Intranet 站点”,看起来如果我取消勾选它就可以正常工作。然而,这不是解决办法!在我阅读的所有地方,我都看到如果您看到与 X-UA 兼容的元标记或 http header ,则它应该优先。嗯,这是一个彻头彻尾的谎言。还有人回答吗??我知道外部用户会很好,但是我的公司正在对此进行测试并且他们提出问题是因为他们是内部用户并且很难说服他们并告诉他们取消选中该框。这并没有给他们一种很好的感觉。此外,我不能让桌面工程团队删除它,因为它已经到位,因为内部较旧的应用程序不是为支持 IE8、9 而编写的,所以他们需要它。
感谢任何帮助。谢谢!
谢谢
最佳答案
我们的内联网也被锁定,所有内联网站点都使用兼容性 View 并使用 IE 8,因为它们都是 Windows XP。
我发现,一旦 IE 8 开始处理标准样板条件注释(以确定将哪个类附加到 <html>
标签),那么游戏就结束了:IE 决定在此时以兼容模式运行(IE 7) 无论我做什么都无法挽回局面。
我发现通过放置 <meta>
紧跟在 <!DOCTYPE>
之后的标签标记它完全按预期工作:
<!DOCTYPE HTML>
<meta http-equiv="x-ua-compatible" content="IE=Edge">
在我看来,这似乎不是很“标准”,但它确实有效。我喜欢任何其他方法来执行此操作,其中 <meta>
标签可以放入 <head>
正如我尝试了几个小时所做的那样。
关于html - 强制 IE8 或 IE9 文档模式为标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896176/