代码之家  ›  专栏  ›  技术社区  ›  René

为什么IE9在我的网站上切换到兼容模式?

  •  197
  • René  · 技术社区  · 15 年前

    我刚刚安装了ie9beta,在我创建的一个特定站点(HTML5)上,IE9跳转到兼容模式,除非我手动告诉它不要。我已经尝试删除网站的几个部分,但没有改变。包括删除所有CSS包含。在我的其他网站上,一切都很顺利。

    http://alliancesatwar.com/guide/
    一个能正确呈现: http://geuze.name/basement/ (我不能发布超过1个超链接)

    doctype 所有的一切。这些网站有很多共同点(除了外观)使用相同的基本模板(编码、元标记、doctype和相同的javascript)

    如果有人能给我一个答案那就太好了!一个HTML5网站,在IE7模式下呈现是相当。。。瘸子。

    8 回复  |  直到 10 年前
        1
  •  263
  •   Kermit    12 年前

    在IE9模式下工作。

    没有一个 X-UA-Compatible header/meta要设置显式documentMode,您将获得基于以下内容的模式:

    • 用户以前是否单击过该域中的兼容性视图按钮;
    • 也可能是由于网站上的其他内容导致IE8/9的渲染器崩溃并返回到旧的渲染器而自动发生的;
    • IE是否认为该站点位于您的intranet上,因此默认为兼容性视图;
    • 该网站是否在Microsoft自己的需要兼容性视图的网站列表中。

    作为网站作者,如果您确信您的网站符合标准(在其他浏览器中呈现良好,并使用功能嗅探来确定要使用的浏览器解决方案),我建议您使用:

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

    或HTTP头:

    X-UA-Compatible: IE=Edge
    

        2
  •  33
  •   pkario    14 年前

    我把

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

    之后的第一件事

    <head>
    

    我不敢相信它真的管用!!

        3
  •  22
  •   TodK Delan Azabani    14 年前

    要强制IE以IE9标准模式渲染,您应该使用

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

    某些情况可能会导致IE9跳转到兼容模式。默认情况下,这可以发生在intranet站点上。

        4
  •  6
  •   Mike Gledhill    11 年前

    我已经在一个单独的StackOverflow线程上发布了这条评论,但我认为值得在这里重复:

    为了我们的内部ASP.Net应用程序,在网页上添加“X-UA-Compatible”标签,在web.config文件或者在代码背后完全没有区别。

    只有

    enter image description here

    (叹息)

    这个问题似乎只发生在内部网站上的IE8和IE9上。外部网站可以正常工作,并使用正确版本的IE8/9,但对于内部网站,IE9突然决定它实际上是IE7,并且没有任何html5支持。

    不,我也不太明白这个逻辑。

    我不情愿的解决办法是

    enter image description here

    它不是特别友好,但让用户关闭这个恼人的设置 似乎是唯一的办法,让他们运行内部的HTML5网络应用程序正确。

    或者让用户使用Chrome。;-)

        5
  •  1
  •   Rob at TVSeries.com    14 年前

    地点在 http://www.HTML-5.com/index.html 确实有X-UA-Compatible meta标签,但仍然进入兼容性视图,如地址栏中的“撕裂页面”图标所示。如何使用菜单选项强制IE9(最终版本9.0.8112.16421)以标准模式呈现页面?我试着用鼠标右键点击那个被撕破的页面图标以及“Alt”键来显示ReneGeuze提到的其他菜单选项,但是这些都不起作用。

        6
  •  1
  •   uknowit2    10 年前

    在更现代的网站上,如果您按照样板文件在html标记上使用条件语句,那么出于某种原因,这将导致ie9默认为兼容模式。这里的修复方法是将您的条件语句从html标记中移除,并将它们添加到body标记中,换句话说,从head部分中移除。这样,您仍然可以在样式表中使用这些类来针对较旧的浏览器。

        7
  •  0
  •   Yi Jiang G-Man    15 年前

    我觉得不错:

    alt text

    你确定你没有在全局设置上做什么?这是一个干净的安装在Windows7上的测试版。开发者工具报告页面默认为IE9标准模式。

        8
  •  0
  •   ROMANIA_engineer Alexey    9 年前

    我最近不得不解决这个问题,以下是我所做的:

    第二个主要的想法是IE9中有一个bug,这意味着meta标签将不起作用,而不是这个解决方案

    • 查找/打开httpd.conf文件
    • LoadModule headers_module modules/mod_headers.so
      
    • 添加以下行

      <IfModule headers_module>
          Header set X-UA-Compatible: IE=EmulateIE8
      </IfModule>
      
    • 使用IE9浏览到您的页面,使用以下工具 wireshark fiddler 或者使用IE开发工具检查标题是否存在
    推荐文章