zoukankan      html  css  js  c++  java
  • 关于IE中通过http-equiv="X-UA-Compatible指定文件兼容性模式

    以下文字内容来自微软MSDN

    认识内容属性值

    内容属性值在接收到异于先前叙述的数值时是具有弹性的。这能使你对于IE如何显示你的网页更有操控性。举例来说,你可以设定内容属性值为IE=7.5。当你这样做的时候,IE尝试将这个值转换为version vector并选择最接近的结果。在这个例子中,IE会将其设定为IE7 mode。下面的范例显示该模式设定为其他值的状况。

    <meta http-equiv="X-UA-Compatible" content="IE=4"> <!-- IE5 mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=7.5"> <!-- IE7 mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=100"> <!-- IE8 mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=a"> <!-- IE5 mode -->
    <!-- This header mimics Internet Explorer 7 and uses 
    <!DOCTYPE> to determine how to display the Web page -->
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

    注意: 前面的范例显示单独的内容值。实际上IE只会执行网页中第一个X-UA-Compatible标头。

    你也可以使用内容属性来指定复数的文件兼容性模式,这能帮助确保你的网页在未来的浏览器版本都能一致的显示。欲设定复数的文件模式,请设定内容属性以判别你想使用的模式。使用分号来分开各个模式。

    如果一个特定版本的IE支持所要求的兼容性模式多于一种,将採用列于标头内容属性中最高的可用模式。你可以使用这个特性来排除特定的兼容性模式,虽然并不推荐这样做。举例来说,下列标头即会排除IE7 mode。

    <meta http-equiv="X-UA-Compatible" content="IE=5; IE=8" />

    指定文件兼容性模式

    要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-Compatible http-equiv 标头。以下是指定为Emulate IE7 mode 兼容性之范例。

    <html>
    <head>
    <!-- Mimic Internet Explorer 7 -->
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>My Web Page</title>
    </head>
    <body>
    <p>Content goes here.</p>
    </body>
    </html>

    其内容随著指定的页面模式而更改,当要模拟IE7时,指定IE=EmulateIE7,指定IE=5, IE=7, 或IE=8来选择其中一种兼容性模式。你也可以指定IE=edge来指示IE8使用它支持的最高模式。

    X-UA-compatible标头没有大小写之分。然而除了title元素及其他的meta元素之外,它必须出现在网页header节其它元素之前的位置,

    判定文件兼容性模式

    要判定网页使用IE8浏览时的文件兼容性模式,使用document object(文档对象)的documentMode功能。例如在IE8的网址列输入下列程式码会显示目前页面的文件模式。

    javascript:alert(document.documentMode);

    documentMode功能会回传一个数值对应目前页面的文件兼容性模式,举例来说,若网页指定为支持IE8模式,documentMode便会回传值"8"。

    在IE6引入的compatMode功能不支持在IE8引入的documentMode功能。目前使用compatMode建立的应用程式还能在IE8中作用,但它们必须更新为使用documentMode。

    若你希望使用JavaScript判定一个文件的兼容性模式,引入下面范例的这段程式码可支持旧版本的IE。

    engine = null;
    if (window.navigator.appName == "Microsoft Internet Explorer")
    {
    // This is an IE browser. What mode is the engine in?
    if (document.documentMode) // IE8
          engine = document.documentMode;
    else // IE 5-7
       {
          engine = 5; // Assume quirks mode unless proven otherwise
    if (document.compatMode)
          {
    if (document.compatMode == "CSS1Compat")
                engine = 7; // standards mode
          }
       }
    // the engine variable now contains the document compatibility mode.
    }

    结论:非常有必要按照浏览器设计支持样式保证页面的正常,

    此标签很有作用,能强制IE使用指定内核渲染,

    为防止失效,X-UA-Compatible最好紧跟在head之后,之前不要有任何不标准的标签。多个标签只有第一个生效!

  • 相关阅读:
    函数对象与闭包函数
    day15
    应用在tomcat下的四种部署方式(原创)
    Servlet的四种映射模式
    背景框代码
    RabbitMQ 示例-生产者-消费者-direct-topic-fanout
    idea 设置自动生成注释
    cSpring Boot整合RabbitMQ详细教程
    Windows下RabbitMQ安装及配置
    Threadlocal线程本地变量理解
  • 原文地址:https://www.cnblogs.com/sung/p/3403659.html
Copyright © 2011-2022 走看看