HTML5 doctype没有触发IE8中的标准模式

HTML5 doctype没有触发IE8中的标准模式,html,internet-explorer-8,doctype,ie8-compatibility-mode,Html,Internet Explorer 8,Doctype,Ie8 Compatibility Mode,我在一家公司工作,我们的所有网站目前都使用XHTML1.0过渡doctype(是的,我知道这是一个非常古老的模式)。我想将它们全部更改为使用HTML5 doctype,因为它是向后兼容的。我想切换的原因之一是,在IE8中,如果有人安装了开发人员工具,那么旧的XHTML doctype会将浏览器切换到兼容模式,并将页面呈现为IE7。通过阅读,我相信HTML5 doctype会将任何页面设置为以标准模式呈现,但当我在登台服务器上测试它时,它仍然会切换到IE7呈现模式 奇怪的是,如果我用HTML5 d

我在一家公司工作,我们的所有网站目前都使用XHTML1.0过渡doctype(是的,我知道这是一个非常古老的模式)。我想将它们全部更改为使用HTML5 doctype,因为它是向后兼容的。我想切换的原因之一是,在IE8中,如果有人安装了开发人员工具,那么旧的XHTML doctype会将浏览器切换到兼容模式,并将页面呈现为IE7。通过阅读,我相信HTML5 doctype会将任何页面设置为以标准模式呈现,但当我在登台服务器上测试它时,它仍然会切换到IE7呈现模式

奇怪的是,如果我用HTML5 doctype本地保存页面并打开它,它将以IE8标准模式呈现。一定是其他原因导致它进入兼容IE7渲染。你知道这是什么吗

下面是我一直在看的测试页面的标题:

    <!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>

    <title>Burton - Mens Clothing - Mens Fashion - Burton Menswear</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <meta name="description" content="Burton is one of the UK's leading men's clothing &amp; fashion retailers, with a range of men's clothing designed to make you look &amp; feel good. Find formal &amp; casual clothes &amp; accessories for men online at Burton menswear"/>
    <meta name="keywords" content="menswear, clothes for men, clothing for men, men clothes, men's fashion, men's wear, men's clothing online, men's clothes online, men's clothes shop, burton men's, burton menswear, burton uk, burton"/>

    <script type="text/javascript">document.getElementsByTagName('html')[0].className = 'js';</script>

    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/screen.css" />
    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/print.css" media="print"/>

    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/brand.css" />

    <!--[if lt IE 8]>
    <link rel="stylesheet" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/ie.css" type="text/css" media="screen, projection">
    <![endif]-->

    <meta http-equiv="content-language" content="en-gb" />

    <link rel="shortcut icon" type="image/x-icon" href="http://eu.burton-menswear.com/favicon.ico" />
    <link rel="search" type="application/opensearchdescription+xml" title="burton.co.uk Search"  href="http://eu.burton-menswear.com/burton-search.xml"/>
    <!-- Start Summit Tag -->
    <script type="text/javascript"> 
  var __stormJs = "t1.stormiq.com/dcv4/jslib/3286_D92B7532_4A18_46A8_864A_5FDF1DF25844.js";
</script>
    <script type="text/javascript" src="http://eu.burton-menswear.com/javascript/track.js"></script>
    <!-- End Summit Tag -->
    <!-- Start QuBit Tag -->
    <script src=//d3c3cq33003psk.cloudfront.net/opentag-31935-42109.js async defer></script>
    <!-- End QuBit Tag -->
    <link type="text/css" rel="stylesheet" href="http://reviews.br.wcstage.arcadiagroup.ltd.uk/bvstaging/static/6028-en_gb/bazaarvoice.css" ></link>

</head>

伯顿-男装-男装时尚-伯顿男装
document.getElementsByTagName('html')[0]。类名='js';
var\uuu stormJs=“t1.stormiq.com/dcv4/jslib/3286\u D92B7532\u 4A18\u 46A8\u 864A\u 5FDF1DF25844.js”;

IE 8中有几个设置可以使页面以兼容模式呈现,而不管页面的HTML内容或HTTP标题是什么:

  • 页面>兼容性视图设置

    • 如果选中“在兼容性视图中显示intranet站点”,则IE将在兼容性视图中呈现本地网络上的所有站点。(在开发过程中,我曾多次遇到这种情况。)

    • 如果选中“包含Microsoft更新的网站列表”,IE将从Microsoft下载网站列表,并在兼容性视图中呈现所有网站

    • 如果勾选了“在兼容性视图中显示所有网站”,那么,您可以猜到会发生什么

  • 工具>Internet选项>高级>浏览

    • 如果选中“使用兼容性视图自动恢复页面布局错误”,则IE有时会在认为页面布局已损坏时切换到兼容性视图。

  • 最后,如果您导航到一个页面,然后单击页面>兼容性视图(或单击地址栏中的兼容性视图图标),则该页面将在兼容性视图中呈现


  • 因此,尽管将
    X-UA-Compatible
    放入其中并使用类似HTML5的doctype(以便您的意图明确),但在测试时始终首先检查这些设置。

    XHTML1.0过渡doctype(当由规范使用时,带有URL)和
    都会触发“标准模式”在IE中,如果没有发生这种情况,则可能有许多原因与doctype更改无关(并且只有在有其他信息(如URL)可用时才能进行分析);请参见使用Doctype激活浏览器模式中的


    更改为
    是毫无意义的,也是一个潜在的问题,除非您实际上没有更改标记。在验证中,这是使用doctype的另一个原因,它会导致完全不同的分析,并且经常会出现关于XHTML 1.0中有效的构造的错误消息。

    我不确定这是否有帮助,但在IE9中,您必须使用:

    <!DOCTYPE html>
    
    
    
    和以下元标记:

    <meta http-equiv="X-UA-Compatible" content="IE=9">
    
    
    
    在测试了这两者的组合后,我发现:

    • 没有Doctype或Meta标记:
      怪癖模式,即发动机=5

    • 仅Doctype:
      标准模式,即发动机=7

    • Doctype和Meta标记
      标准模式,即发动机=9

    • 仅元标记
      标准模式,即发动机=9

    如何确定模式类型和发动机:

    • document.compatMode
      CSS1Compat
      =标准模式,否则您将处于怪癖模式

    • document.documentMode
      :返回IE用于呈现文档的引擎


    注:

    • 通常Doctype必须是文件的第一行。我不确定, 但我认为XML标记可以放在它前面。如果有什么先例的话 您可能会破坏您的doctype声明:
    • 元标记必须放在
    • 你的帖子已经发了25天了,所以我想你有一个解决方案。即便如此,我也不确定这些IE9设置是否适合您的问题。您必须检查
      window.document.compatMode
      window.document.documentMode
      ,以确定它们在IE8下是否可行
    • 将元标记更改为
    • 尽管可以只使用meta标记,但我不建议在没有doctype的情况下使用它。因为这可能会导致XML、CSS和脚本出现问题

    我花了几个小时试图弄明白这一点,并发表了这篇文章,所以我希望有人真的能从我的研究中得到一些帮助。愿源头与你同在……

    暗中刺杀。。但是,请尝试将其添加到您的
    xmlns=”http://www.w3.org/1999/xhtml“
    应该是问题所在。谢谢保罗,这真的很有帮助。在兼容模式下显示intranet站点已勾选。为了安全起见,我想我也会添加与X-UA兼容的meta标记。@ElGuapo:不客气,我已经被这件事抓住过好几次了,和我一起工作的测试人员也是如此。IE 8有一个“兼容性视图设置”界面,它不包含所有的兼容性视图设置,这有点令人恼火,但内联网界面似乎是一个通常会让人感到困惑的界面,这是一个可以理解的默认界面。嗨,Jukka,将doctype改为HTML5似乎是明智的做法,因为我们开始在我们的网站上做更多的HTML5内容(特别是视频)——为什么